下载chromedriver.exe:注意对应浏览器版本
CNPM Binaries Mirrorhttp://npm.taobao.org/mirrors/chromedriver/
1、Message: unknown error: cannot find Chrome binary
解决方法参考:用python遇到cannot find Chrome binary,chrome找不到二进制文件_卿婳的博客-CSDN博客
from selenium import webdriver
driver = webdriver.Chrome("D:\Chrome\Chrome\Application\chromedriver.exe")
#隐式等待
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
2、解决完二进制问题又出现:DeprecationWarning: executable_path has been deprecated, please pass in a Service object警告
解决方法参考 :不知道原理但是真的没有警告了解决 DeprecationWarning: Executable executable_path has been deprecated, please pass in a Service object in Selenium Python 问题 - 习久性成 - 博客园 (cnblogs.com)
# 导入selenium
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 选择谷歌浏览器
s = Service(executable_path=r'D:\Chrome\Chrome\Application\chromedriver.exe')
driver = webdriver.Chrome(service=s)
# 输入网址
driver.get("https://www.baidu.com/")
# *** 作网址,sleep是必须等待
time.sleep(3)
# 打印网页title
print(driver.title)
# 关闭网址
driver.quit()
3、关于driver.implicitly_wait(10)与sleep的区别
解答:
implicitly_wait(5)属于隐式等待,5秒钟内只要找到了元素就开始执行,5秒钟后未找到,就超时;
time.sleep(5)表示必须等待5秒定位;
如何灵活运用这两种方式:driver.implicitly_wait()与time.sleep()的区别 - 乐乐熊小妹 - 博客园 (cnblogs.com)
当某个页面元素变化多,影响多的情况下,用sleep,等页面元素稳定了,再定位。
如果用implicitly_wait(5),还没等页面元素稳定后就定位 ,导致定位不准确,比如 *** 作某个元素后,会出现提示框,影响了后面元素的位置,导致定位不准确;所以用sleep,等提示框消失后开始定位。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)