zoukankan      html  css  js  c++  java
  • Selenium

    Explicit Waits

    # Python
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
    from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
    
    ff = webdriver.Firefox()
    ff.get("http://somedomain/url_that_delays_loading")
    try:
        element = WebDriverWait(ff, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
    finally:
        ff.quit()
    • Expected Conditions

    # Python
    from selenium.webdriver.support import expected_conditions as EC
    wait = WebDriverWait(driver, 10)
    element = wait.until(EC.element_to_be_clickable((By.ID,'someid')))

    Implicit Waits

    # Python
    from selenium import webdriver
    
    ff = webdriver.Firefox()
    ff.implicitly_wait(10) # seconds
    ff.get("http://somedomain/url_that_delays_loading")
    myDynamicElement = ff.find_element_by_id("myDynamicElement")

    Remote WebDriver

    • Taking a Screenshot

    # Python
    from selenium import webdriver
    
    driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.FIREFOX.copy())
    driver.get("http://www.google.com")
    driver.get_screenshot_as_file('/Screenshots/google.png')
    • Using a FirefoxProfile

    # Python
    from selenium import webdriver
    fp = webdriver.FirefoxProfile()
    # set something on the profile...
    driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX, browser_profile=fp)
    • Using ChromeOptions

    # Python
    from selenium import webdriver
    options = webdriver.ChromeOptions()
    # set some options
    driver = webdriver.Remote(desired_capabilities=options.to_capabilities())

    Using a Proxy

    • Internet Explorer

    # Python
    from selenium import webdriver
    
    PROXY = "localhost:8080"
    
    # Create a copy of desired capabilities object.
    desired_capabilities = webdriver.DesiredCapabilities.INTERNETEXPLORER.copy()
    # Change the proxy properties of that copy.
    desired_capabilities['proxy'] = {
        "httpProxy":PROXY,
        "ftpProxy":PROXY,
        "sslProxy":PROXY,
        "noProxy":None,
        "proxyType":"MANUAL",
        "class":"org.openqa.selenium.Proxy",
        "autodetect":False
    }
    
    # you have to use remote, otherwise you'll have to code it yourself in python to 
    # dynamically changing the system proxy preferences
    driver = webdriver.Remote("http://localhost:4444/wd/hub", desired_capabilities)
    • Chrome

      Is basically the same as internet explorer. It uses the same configuration on the machine as IE does (on windows). On Mac it uses the System Preference -> Network settings. On Linux it uses (on Ubuntu) System > Preferences > Network Proxy Preferences (Alternatively in “/etc/environment” set http_proxy). As of this writing it is unknown how to set the proxy programmatically.

    • Firefox

    # Python
    from selenium import webdriver
    from selenium.webdriver.common.proxy import *
    
    myProxy = "host:8080"
    
    proxy = Proxy({
        'proxyType': ProxyType.MANUAL,
        'httpProxy': myProxy,
        'ftpProxy': myProxy,
        'sslProxy': myProxy,
        'noProxy': '' # set this value as desired
        })
    
    driver = webdriver.Firefox(proxy=proxy)
    
    # for remote
    caps = webdriver.DesiredCapabilities.FIREFOX.copy()
    proxy.add_to_capabilities(caps)
    
    driver = webdriver.Remote(desired_capabilities=caps)

    Data Driven Testing

    # Python
    # Collection of String values
    source = open("input_file.txt", "r")
    values = source.readlines()
    source.close()
    # Execute For loop for each String in the values array
    for search in values:
        driver.get('http://www.google.com')
        driver.find_element_by_name("q").send_keys(search)
        driver.find_element_by_id("btnG").click()
        element = WebDriverWait(driver, 5).until(ExpectedConditions.presence_of_element_located((By.XPATH, "//*[contains(., 'Results')]"))
        assert search in element.text
  • 相关阅读:
    hdu 4825 Xor Sum(01字典树模版题)
    poj 2778 DNA Sequence(ac自动机+矩阵快速幂)
    codeforces 626 G. Raffles(线段树+思维+贪心)
    hdu 2615 Division(暴力)
    hdu 6092 Rikka with Subset(多重背包)
    codeforces 688 E. The Values You Can Make(01背包+思维)
    JavaUtil smtp 邮件发送
    JavaUtil 处理Base64的图片上传
    Centos7 在apache+php7环境下 安装 Discuz!X3.4
    Centos7 安装 apache + php7.0 环境
  • 原文地址:https://www.cnblogs.com/sufei-duoduo/p/5852678.html
Copyright © 2011-2022 走看看