【问题标题】:Python Selenium find Chrome element with attrid (not id)?Python Selenium 找到带有 attrid(不是 id)的 Chrome 元素?
【发布时间】:2021-07-11 18:32:57
【问题描述】:

我有一个网站(私人的,抱歉),我正试图从中提取一些文本。 当我检查 Chrome 时,嵌套在表格的一行中的相关行如下:

<div id="dataGeneral" style="width: auto; height: auto;">
  <table class="someClassName">
    <tbody>
      <tr>
        <td class="*someOtherClassName*" attrid="com.intranet.state"> TextNeeded </td>

我已经能够通过完整的 xPath 获得上述 TextNeeded,但是非常不稳定并且大多数时候会导致错误(没有这样的元素:无法定位元素......)

我还可以使用什么其他方法可靠地提取此文本?我已经尝试使用上述 attrid 的 driver.find_elemend_by_id (以及所有其他选项),但这也说明没有这样的元素。

有没有办法从表 id 向下钻取?

【问题讨论】:

    标签: python-3.x selenium google-chrome web-scraping


    【解决方案1】:

    如果你想找到这个特定的定位器,使用 xpath:

       driver.find_element_by_xpath('//tbody/tr/td/a[contains(text(), "TextNeeded")]')
    

    要从此行获取文本,请使用:

     text = driver.find_element_by_xpath("//td[contains(@attrid,'com.intranet.state')]").text
    

    【讨论】:

    • 谢谢!您的第二个选项似乎在起作用
    【解决方案2】:

    你可以试试这个:

    wait = WebDriverWait(driver, 10)
    element = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@id='dataGeneral']/td[@class='someOtherClassName']")))
    print(element.text)
    

    以下需要导入:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-30
      • 2021-06-22
      • 2022-07-28
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 2021-12-17
      相关资源
      最近更新 更多