【发布时间】:2019-05-01 23:28:50
【问题描述】:
我有一个 Selenium 3 Python 脚本,用于归档 FTC complaints 以进行骚扰电话。今天,一个恶棍通过使用数字“0”(字面意思是 0)成功了。 FTC 网站拒绝了该号码,但我的脚本未能检测到故障。
这是我的 Python 脚本中驱动投诉流程的相关部分。 Here is a pastebin 拒绝号码的 FTC 页面。根据Selenium docs,button_continue.click() 没有返回值(如果我正确解析文档;请参阅标题用户输入 - 填写表单)。
# print("Clicking Continue")
button_continue = driver.find_element_by_id("StepTwoSubmitButton")
button_continue.click()
我还购买了Test-Driven Development with Python 这本书,但是我在网上搜索时发现的 Selenium 命中结果却是书中的两页。 (这非常令人失望;尽管书名如此,但不推荐用于此类任务)。
我的问题是,如何使用 Selenium 3 检测故障?
这是导致问题的 FTC 页面的特定 Javascript。来自the pastebin:
<div class="s_form_verif_bttn_sl">
<label for="StepTwoSubmitButton">
<input type="submit" name="StepTwoSubmitButton" value="Submit" onclick="validateform();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("StepTwoSubmitButton", "", true, "StepTwoEntry", "", false, false))" id="StepTwoSubmitButton" accesskey="s" tabindex="17" class="th_s" />
</label>
<label for="StepTwoCancelButton">
<input type="submit" name="StepTwoCancelButton" value="Cancel" id="StepTwoCancelButton" accesskey="s" tabindex="18" class="th_s" />
</label>
</div>
我能够手动重现提交失败。下面是提交表单结果的屏幕截图。当我在 Developer Console 中查看该过程时,我没有看到任何异常情况,例如未捕获的异常。
这里是软件包版本。
$ apt-cache policy chromium-browser
chromium-browser:
Installed: 73.0.3683.86-0ubuntu0.18.04.1
Candidate: 73.0.3683.86-0ubuntu0.18.04.1
$ apt-cache policy python3-selenium
python3-selenium:
Installed: 3.8.0+dfsg1-3
Candidate: 3.8.0+dfsg1-3
$ apt-cache policy chromium-chromedriver
chromium-chromedriver:
Installed: 73.0.3683.86-0ubuntu0.18.04.1
Candidate: 73.0.3683.86-0ubuntu0.18.04.1
$ apt-cache policy python3
python3:
Installed: 3.6.7-1~18.04
Candidate: 3.6.7-1~18.04
【问题讨论】:
-
您使用的 selenium 版本已经过时了。我很惊讶它完全适用于该版本的 chromium。您应该使用 pip 从 PyPI 安装最新版本。
-
谢谢科里。是的,陈旧的软件听起来很适合课程。我不希望 Pip 在系统上。在我必须运行的生产 Web 服务器上,它给我带来了太多问题。最终,我在他们的 GitHub 上找到了错误报告,并且问题已关闭,因为无法修复,并且像用户这样的 cmets 必须修复它们。我鄙视坏掉的工具。
-
pip 已经与较新版本的 python 捆绑在一起,所以你可能已经安装了它。你也可以在没有 pip 的情况下安装最新的 selenium。
标签: python selenium selenium-chromedriver webdriverwait error-checking