当前位置: 首页 > 知识库问答 >
问题:

Selenium 3 Firefox。单击()不工作

上官华池
2023-03-14

自从我升级到最新的Selenium版本后,我的Firefox驱动程序无法正常工作。在Google/Stack搜索中找不到答案,我希望这里有人有答案。

我已经构建了一个页面对象模型,用于登录网页,单击管理站点并填写用户名/密码+提交。这段代码是为Selenium 2.53.6编写的,但仍然适用于IE和Chrome。对我来说,失败的部分是这行代码:

driver.find_element_by_xpath(locators["login.open"]).click()

定位器是:

locators["login.open"] = "//*[@href='//www.phptravels.net/admin']"

我使用这个网站来练习我的硒:http://phptravels.com/demo/

编辑(1):我已经尝试了Firefox 48和49版本-仍然无法工作

编辑(2):geckodriver配置为声明了Firefox二进制文件,但是驱动程序仍然没有执行。click()

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

binary = FirefoxBinary('path/to/binary')
driver = webdriver.Firefox(firefox_binary=binary)

Edit(7):在Keys库中使用.send_keys(Keys.return)可以工作,但是如果使用POM,可能需要额外的重新配置。显式地执行一段时间。sleep将使您无所适从,但目前使用Selenium3+Firefox/GeckoDriver实现web浏览器自动化仍然很困难。如果您需要测试Firefox(注意:最新版本的Firefox不能工作),则降级到最后的稳定版本(2.53.6)。

共有1个答案

王佐
2023-03-14

我也有同样的问题,但有时。点击工作,其他时候它没有。对于我来说,它不能很好地处理切换到新打开的窗口,以及其他一些怪癖,这些怪癖导致在Selenium2.53.4中通过的测试和在Chrome、Safari和IE中通过Selenium3的测试在Firefox中失败。我知道这不是很具体,但我已经在其他地方发布了寻找具体问题的帖子。

我使用的是Ruby/Selenium/Capaybara。在使用Selenium3/Geckodriver/FF49组合进行广泛测试后,我恢复到Selenium2.53.4/FF47.01。我的印象是Selenium 3/GeckoDriver组合还不太稳定,这可能包括水豚与GeckoDriver的兼容性,也可能不包括水豚与GeckoDriver的兼容性。我很想错。我在网上搜索了任何有用的信息,但没有找到。

然而,我确实在Selenium3的发布博客公告中发现了这样一条提示:“Mozilla在实现W3C WebDriver协议方面一直处于领先地位。从好的方面来看,这暴露了规范在发展过程中的问题,但这也意味着Firefox的支持很难跟踪,因为他们的工程努力是前瞻性的,而不是支持Selenium WebDriver使用的当前有线协议。目前,我们能提供的最好建议是让您一起尝试最新版本的geckodriver和Selenium。”

 类似资料:
  • 我无法单击子菜单。。尝试使用不同的xpath/id。。。。。 下面是html标签,主菜单是演示文稿(用红色箭头标记),子菜单在div下。 您能告诉我如何为此编写xpath吗。我想单击子菜单中的“假设”。 这里主菜单标签位于div(子菜单)的底部。 另附硒代码。请帮帮我。。。。

  • 我不能点击子菜单项使用selenium网络驱动程序使用c#。我正在使用IE9和FireFox 13。我尝试过Action Builder,但它不起作用。它给出了一个错误,说元素不能被单击。 我甚至使用了javascript:js。ExecuteScript(“return$(\”a:contains('ID1')\”).mouseover();”;//鼠标移动到主菜单 webDriver。Find

  • 我有一个点击单选按钮的代码,一开始我用的是Chrome。使用下面的代码: 我发现了一个错误: 做研究的时候,我把代码改成: 当我单击单选按钮时,标签会在单击时获得一个附加属性。 其他编辑: 这组按钮如下所示:

  • 我正在经历一个问题。 XML编码 Java编码 我希望当我单击editText时,当前文本必须是dissapperar。但是当我单击 单击事件工作正常,但光标不再位于编辑文本处。这意味着如果要输入一些新文本,那么即使光标不在编辑文本,如何输入新文本,如果我使用 然后单击事件不起作用。但可用于任何新编辑。问题是什么?我知道这是个愚蠢的错误,但我不知道在哪里。提前感谢大家。

  • 按钮单击在selenium webdriver中不工作。 尝试使用类名和xpath。 提交订单

  • 我将测试一个网络应用程序。在我的表中有一个按钮可以选择所有条目。我尝试过: selenium单击按钮,但什么也没发生。(还有send_Keys(Keys.Return))应用程序是用GXT开发的,我发现按钮后面有很多javascript。是否有可能等待事件加载器准备就绪?在单击之前等待可以解决问题,但不是自动测试的解决方案。