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)