Python Selenium是否找到具有attrid(非id)的Chrome元素



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

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

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

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

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

如果您想找到这个特定的定位器,请使用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

你可以试试这个:

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

最新更新