我正在使用Selenium WebDriver 2.5.0(试过2.13.0,它没有帮助)。 我想点击这样的链接:
driver.FindElement(By.PartialLinkText("Customer - Creation").Click();
在它工作之前,但我已经尝试在3周后运行脚本 我在3台机器上观察到3种不同的行为:
机器A:根本没有点击链接,也没有错误。
机器B:点击其他链接!有时一个在上面,有时一个在下面。
机器C(虚拟):它有效。
我还没有完全测试过这个(今天花了半天时间),但有没有人偶然发现这种行为?
我重新启动了我的电脑,重新添加了Selenium库。 “SendKeys(Enter)”有帮助,但这个问题不仅发生在链接上,而且至少发生在无线电盒中,“SendKeys(Enter)”不起作用。
请分享您的想法。
更新:至少2台计算机上的浏览器相同,Internet Explorer 8.0
答案 0 :(得分:5)
nebehr.g回答... @gmail.com在Selenium问题:
这个问题不时出现,通常会随着要求澄清而退回。底线是,InternetExplorerDriver错误地计算某些对象的坐标并点击错误的位置。其中一个原因是缩放值不是100%;但是对于某些控件来说它也可以重现100%变焦。
我认为如果您可以创建示例页面来演示此问题会很有帮助。与此同时,为什么不使用Javascript click()方法来攻击控件?
http://code.google.com/p/selenium/issues/detail?id=3052
答案 1 :(得分:3)
要检查的另一件事是屏幕分辨率(不是桌面分辨率,而是文本和图标的系统级别大小)。我办公室里有两台用于测试的笔记本电脑,一台运行Windows 7,另一台运行Windows 10.两者都是,屏幕分辨率大于100%而Selenium在将鼠标移动到鼠标的正确位置时遇到问题点击和悬停等事件。只要屏幕分辨率设置为100%,所有鼠标操作都会正常工作。
Windows 7:http://windows.microsoft.com/en-us/windows7/make-the-text-on-your-screen-larger-or-smaller?v=t
Windows 10:https://superuser.com/questions/951199/windows-10-system-font-size-change
答案 2 :(得分:1)
在安德烈的回答和他在https://code.google.com/p/selenium/issues/detail?id=3052提到的Selenium问题中有很多有用的信息。只是将所有这些信息捆绑在一起并提供成功的解决方法......
我也遇到了在错误的屏幕坐标处发生点击的问题 - 在OP首次提到它之后的四年!正如其他人所说:
我尝试了在这篇文章和其他地方提出的几种解决方法。所有这些都没有帮助:
正如Andrey所建议的那样,DID的帮助是使用JavaScript而不是WebDriver的click()方法。这是一行Python代码,可以解决这个问题:
driver.execute_script("jQuery('{}').click();".format(css_selector))
这假设"驱动程序"是Selenium WebDriver的一个实例," css_selector"是一个标识要单击的元素的字符串,并且已加载jQuery。
答案 3 :(得分:0)
听起来这个元素在页面的HTML中不存在,而是在页面加载后动态添加。发生的事情取决于机器的速度和文本的独特性。我敢打赌,如果你加了一个长睡眠(例如,一分钟),你将在所有3台机器上获得相同的结果。如果是这样,那就表明了最经典的Selenium测试问题 - 尝试在不完整的页面上进行操作。您需要找到一个要等待的元素,以确保您想要点击链接。
答案 4 :(得分:0)
我在FireFox中遇到了同样的问题。缩放是100%,选择是通过xpath肯定是正确的。当我最大化浏览窗口时,问题就消失了!
代码:(python api)
self.driver.maximize_window()