因此,我是一个新手,正在尝试找出一些在python中使用的东西。在
元素:
<div id="scroll2" class="fm2 p8 cur m_bt2" onclick="javascript:displayResultsLogin('scroll2')"> Show More Results </div>
Xpath://*[@id="scroll2"]
我使用shell执行:
^{pr2}$执行上述操作后,元素:
<div id="scroll3" class="fm2 p8 cur m_bt2" onclick="javascript:displayResultsLogin('scroll3')"> Show More Results </div>
XPath://*[@id="scroll3"]
当我再次执行同一个命令时,它会引发一个异常:
^{pr2}$例外
Traceback (most recent call last): File "", line 1, in element = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[contains(text(), ' Show More Results')]"))) File "C:\Python34\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
不明白为什么。或者绕道而行。在
我坚信这与您正在测试的应用程序的构建方式有关:似乎单击scroll2按钮会使该应用程序不可见,并将scroll3按钮添加到页面中。在
之后,当你打电话给等等,直到(…)发生的情况是WebDriver会找到scroll2按钮(因为只检查内部文本的XPath表达式仍然匹配它),然后等待它变为可单击的,因为它不再可见。在
您可以使用如下简单的网页重新创建:
这个python片段:
^{pr2}$这里还有第二个等等,直到(…)将超时,即使页面在视觉上看起来是正确的。在
基本上有两种解决方案:
示例:
请注意,您可能还必须在定位器中包含祖先可见性,有关详细信息,请参阅以下问题:How do I select only visible elements using XPath?
相关问题 更多 >
编程相关推荐