我有一个网站(私人,抱歉(,我正试图从中提取一些文本。当我检查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