1

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

driver.find_elements_by_xpath(".//div/div/div[3]/table//tr[12]/td/table//tr/td/a")

我得到一个充满元素的列表。我可以成功点击列表中的第一个链接;但是,当我单击第二个时,我收到此错误:“在缓存中找不到元素-也许页面在查找后已更改” 我想我尝试遍历的页面链接的原因是通过生成的对 java 的搜索查询(这是 href 链接之一:

javascript:__doPostBack('ctl00$Content$listJobsByAll1$GridView2','Page$3') )

还有一条相关信息:这个 xpath 位置只有两个属性:href 和 text。

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

4

1 回答 1

2

如果您单击带有 的链接selenium,则您正在更改当前页面。您被定向到的页面没有下一个元素。

获取链接使用:

'.//tag/@href'

你可以试试:

for elem in elems:
    elem.click()
    print browser.current_url
    browser.back()
于 2013-01-07T12:45:36.987 回答