Chromedriver问题解决

Chromedriver问题解决,第1张

下载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,等提示框消失后开始定位。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/885777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存