selenium的版本及操作

webdriver与Chrome浏览器 对应版本下载

webdriver与Chrome浏览器 对应版本下载
http://chromedriver.storage.googleapis.com/index.html

1.查找元素

https://blog.csdn.net/qq_32897143/article/details/80383502

2.显式等待和隐式等待

显示等待:在 一段时间内 查到元素就执行,查不到报错。
隐示等待:类似于time.sleep(10),在等待一段时间后,才开始查找元素。

3.关闭(close和quit)

close:关闭当前页面。
quit:关闭浏览器。

4.存在内嵌frame导致无法定位元素

# 切换内嵌frame
fr=browser.find_element_by_xpath("//iframe[contains(@src,'https://uac.10010.com/portal/homeLoginNew')]")
browser.switch_to.frame(fr)

5.chrom浏览器被识别

from selenium import webdriver


def getDriver():
    options = webdriver.ChromeOptions()
    options.add_argument("--disable-extensions")
    options.add_argument("--disable-gpu")
    #options.add_argument("--no-sandbox") # linux only
    #options.add_argument('--proxy-server=127.0.0.1:8080') # 设置代理,目标url打不开
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option("useAutomationExtension", False)
    driver = webdriver.Chrome(executable_path='C:\my_files\chromedriver.exe', options=options)
    driver.execute_cdp_cmd("Network.enable", {
    
    })
    driver.execute_cdp_cmd("Network.setExtraHTTPHeaders", {
    
    "headers": {
    
    "User-Agent": "browserClientA"}})
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    
    
        "source": """
            Object.defineProperty(navigator, 'webdriver', {
                get: () => undefined
            })
        """
    })
    return driver

driver = getDriver()
driver.maximize_window()
driver.get('https://www.baidu.com')#百度换成目标url

6.firefox设置无头和代理

profile=webdriver.FirefoxOptions()
profile.add_argument('-headless') #设置无头模式
#设置代理服务器
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http',IP)#IP为你的代理服务器地址:如‘127.0.0.0’,字符串类型
profile.set_preference('network.proxy.http_port', PORT)  #PORT为代理服务器端口号:如,9999,整数类型
driver=webdriver.Firefox(options=profile)

猜你喜欢

转载自blog.csdn.net/b806071099/article/details/89842122