【问题标题】:unable to find a link from a table using selenium python无法使用 selenium python 从表中找到链接
【发布时间】:2021-08-31 13:27:58
【问题描述】:

我正在尝试搜索链接并单击它,该链接位于表格中,但我尝试搜索链接的文本位于其他标签中

桌子是

<table><tbody><tr><td>1.</td><td><a href="dynamic/somelocation/link">Link</a></td><td>Refrence text</td><td>Another text</td><td>another text</td><td>more data</td><td>data</td></tr></tbody></table>

我尝试了很多东西 但对我没有任何帮助

from selenium.webdriver.common.by import By

import time
driver=webdriver.Chrome(executable_path="G:\\python\\driver\\chromedriver")
driver.implicitly_wait(3)
driver.get("https:webpagelink.aspx")
driver.implicitly_wait(3)

data=driver.find_elements_by_tag_name('tr')
#i don't know how to handle after it
for ln in data
     if ln.text="Refrence text"
        ln.click()

      ```

【问题讨论】:

  • 您尝试访问的参考文本和链接如何相关?

标签: python-3.x selenium selenium-webdriver browser-automation


【解决方案1】:

使用link_text

driver.find_element_by_link_text('Link')

find_element_by_xpath("a[@href='somelocation']")

不知道你为什么要使用find_elements :(但如果你想要的只是你可以尝试下面的代码)

data = driver.find_elements(By.XPATH, "//tbody//tr")
for ln in data:
     if ln.text =="Refrence text":
        ln.click()

【讨论】:

  • 有很多行我正在通过引用文本搜索其中一个
【解决方案2】:

试试这个 XPath:

locator = '//td[contains(text(),"Reference text")]/..//a'
driver.find_element_by_xpath(locator).click()

或者如果你想使用完全匹配,试试这个

locator = '//td[text()="Reference text"]/..//a'
driver.find_element_by_xpath(locator).click()

【讨论】:

  • 有几行我需要在新窗口中打开每个匹配的链接感谢您的帮助
  • 好的。那么,每个链接都有不同的已知文本还是什么?
  • 有时引用文本部分匹配
  • 所以,当您能够清楚地说明情况和您的问题时,将更有可能为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2015-09-30
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多