使用Python单击按钮脚本[重复]

Posted

技术标签:

【中文标题】使用Python单击按钮脚本[重复]【英文标题】:Click button script with Python [duplicate] 【发布时间】:2018-03-31 01:40:02 【问题描述】:

尝试运行以下脚本以访问 this 网站并单击链接以导出 csv。

from selenium import webdriver
driver=webdriver.Firefox()
driver.get("https://www.draftkings.com/contest/gamecenter/46877680")
elem1 = driver.find_element_by_link_text("Export Lineups to CSV")
elem1.click()

我收到以下错误,找不到geckodriver。我点安装了硒。我从一个较旧的视频中得到这个,我目前正在运行Python 3.6,所以这也可能是问题的一部分。我哪里错了?

Traceback(最近一次调用最后一次): 文件“C:\Program Files\Python36\lib\site-packages\selenium\webdriver\common\service.py”,第 74 行,开始 标准输出=self.log_file,标准错误=self.log_file) init 中的文件“C:\Program Files\Python36\lib\subprocess.py”,第 707 行 恢复信号,开始新会话) _execute_child 中的文件“C:\Program Files\Python36\lib\subprocess.py”,第 992 行 启动信息) FileNotFoundError: [WinError 2] 系统找不到指定的文件

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“C:/Users/mike/Desktop/Lineup1.py”,第 2 行,在 驱动程序=webdriver.Firefox() init 中的文件“C:\Program Files\Python36\lib\site-packages\selenium\webdriver\firefox\webdriver.py”,第 144 行 self.service.start() 文件“C:\Program Files\Python36\lib\site-packages\selenium\webdriver\common\service.py”,第 81 行,开始 os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException:消息:“geckodriver”可执行文件需要在 PATH 中。

【问题讨论】:

收到不理解的错误消息时,您应该做的第一件事是谷歌它。这通常会找到你至少可以开始的答案。 这就是我如何堆栈溢出 Jeff.. 【参考方案1】:

下载 geckodriver 并将 geckodriver.exe 文件拖放到项目根文件夹中。这样,就不需要在你的代码中添加geckodriver路径,然后再次尝试执行代码。不会出现错误

【讨论】:

【参考方案2】:

实际上,Selenium 客户端绑定尝试从系统 PATH 中定位 geckodriver 可执行文件。您需要将包含可执行文件的目录添加到系统路径。 在 Unix 系统上,如果您使用 bash 兼容的 shell,您可以执行以下操作将其附加到系统的搜索路径中:

export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step

在 Windows 上,您需要更新 Path 系统变量以手动或命令行添加可执行 geckodriver 的完整目录路径(不要忘记在将可执行 geckodriver 添加到系统 PATH 后重新启动系统才能生效)。原理和Unix一样。

然后尝试使用以下

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)

参考资料,

https://github.com/mozilla/geckodriver/releases

https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

【讨论】:

我偶然发现了这个早期的尼尔,谢谢你的回复。我不确定如何更新 Path 系统变量以手动或命令行将完整目录路径添加到可执行 geckodriver 中(不要忘记在将可执行 geckodriver 添加到系统 PATH 后重新启动系统才能生效)。 我去github.com/mozilla/geckodriver/releases下载了gecko.exe。在文件路径中是什么意思?我目前在我的桌面上只有 lineup.py 脚本 好的,我明白了。它需要我每次登录。这将是另一个令人头疼的问题,但至少它会打开。另一件事是我不认为它点击了我请求的链接。

以上是关于使用Python单击按钮脚本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用我网站上的按钮运行 python 脚本 [重复]

单击按钮时更改按钮的背景颜色[重复]

通过单击提交按钮在 Django 网站中运行 Python 脚本

Selenium(Python):单击按钮后,等待所有新元素(可以具有不同的属性)被加载[重复]

嗨,我正在使用 php 执行 python 脚本,但我不希望在单击按钮时刷新页面,因为我也嵌入了其他页面 [关闭]

在按钮单击时执行 python 脚本