需要在python中使用SeleniumWebDriver单击xpath

需要在python中使用SeleniumWebDriver单击xpath,python,selenium,click,webdriver,element,Python,Selenium,Click,Webdriver,Element,我已经创建了一个匹配xpath的元素列表,并希望依次单击每个元素。但是,如果我使用get_attribute(“href”)命令,我得到的“unicode”对象没有属性“click”错误。这是因为href是一个字符串。如果我不使用get_属性,只需使用以下命令: driver.find_elements_by_xpath(".//div/div/div[3]/table//tr[12]/td/table//tr/td/a") 我得到了一个充满元素的列表。我可以成功点击列表中的第一个链接;然而,

我已经创建了一个匹配xpath的元素列表,并希望依次单击每个元素。但是,如果我使用
get_attribute(“href”)
命令,我得到的“unicode”对象没有属性“click”错误。这是因为href是一个字符串。如果我不使用get_属性,只需使用以下命令:

driver.find_elements_by_xpath(".//div/div/div[3]/table//tr[12]/td/table//tr/td/a")
我得到了一个充满元素的列表。我可以成功点击列表中的第一个链接;然而,当我点击第二个按钮时,我得到了这个错误:“Element not” 在缓存中找到-可能页面在查找后已更改' 我想我尝试迭代的页面链接是通过java搜索查询生成的(这是href链接之一:

javascript:__doPostBack('ctl00$Content$listJobsByAll1$GridView2','Page$3') )
还有一条相关信息:此xpath位置只有两个属性:href和文本


因此,考虑到我正在处理的是一个java网站,并且只有这两个属性,我希望有人能告诉我可以使用哪些webdriver命令来获得一系列可点击的静态链接。除了具体的答案之外,任何关于我如何自己解决这一问题的建议都会很有帮助。

如果你点击带有
selenium
的链接,你就可以正在更改当前页面。定向到的页面没有下一个元素

要获取链接,请使用:

'.//tag/@href'
您可以尝试:

for elem in elems:
    elem.click()
    print browser.current_url
    browser.back()

谢谢。我不知道为什么我没有试过——没有理由它不起作用。我回家后会试一下。所以当我回去时,元素仍然不同,因此我必须1)计算元素,然后2)遍历元素列表的范围,并且每次都实例化列表,因为单击驱动程序中的第i个元素。按xpath查找元素(“.//div/div/div[3]/table//tr[12]/td/table//tr/td/a”):list.append(i)count=len(list)-1范围内i的打印计数(count):print i target=driver。按xpath查找元素(.//div/div/div/div/div[3]/table//tr[12]/td/table//tr/td/a”)打印目标[i]。单击()时间。睡眠(5)驱动程序。返回()时间。睡眠(5)@user1780852,如果答案正确且对您有帮助,您应该接受它。