2013-09-25 123 views
3

我用python的selenium webdriver以便找到一个元素并单击它。这是代码。我将'数字'传递给此代码的方法,这不起作用。我在浏览器上看到该元素已找到,但未点击该元素。Python selenium webdriver - 无法通过xpath单击一个元素

subIDTypeIcon = "//a[@id='s_%s_IdType']/img" % str(number) 
self.driver.find_element_by_xpath(subIDTypeIcon).click() 

然而,我试着放置“self.driver.find _.....”两次,让我惊讶它的工作原理

subIDTypeIcon = "//a[@id='s_%s_IdType']/img" % str(number) 
self.driver.find_element_by_xpath(subIDTypeIcon).click() 
self.driver.find_element_by_xpath(subIDTypeIcon).click() 

我有浏览器的远程服务器上得到打开,有时会有超时问题。

有没有正确的方法来完成这项工作?为什么当同样的语句被放置两次时它工作

回答

2

这是一个常见问题,也是创建抽象,每页助手类的主要原因。您通常不需要盲目寻找元素,而是需要一个循环尝试查找元素几秒钟,以便浏览器可以更新DOM。

第二个版本经常起作用,因为开始加载新页面并不会使DOM无效。只有当远程服务器已经开始将足够的新文档发送到浏览器时才会发生这种情况。当您使用浏览器时,您可以自己查看:点击链接时页面不会变为空白。相反,他们停留一段时间。

相关问题