我一直在尝试在Python 3.7上用Selenium抓取网站的这一部分,没有什么独特之处,网站的许多部分具有完全相同的风格。
<tr><td style="black 2px solid" colspan="1"></td></tr>
<tr><td>Total</td><td style="color: blue" valign="top">1,233</td><td style="color: green" valign="top"> (86.35%) </td></tr>
<tr><td colspan="1"> </td></tr>
唯一独特的是值是"总计",我需要在"1,233"之后刮掉 td。 使用时:通过 xpath 查找元素 我使用这个 xpath:
('.//td[text()="Total"]')
我一直在玩路,没有运气。
是否可以从值中获取 xpath 位置?
谢谢 :-(
若要获取值1,233
请使用以下任一 xpath。
//td[text()='Total']/following-sibling::td[1]
或
//tr[.//td[text()='Total']]/td[2]
在硒中使用蟒蛇
print(driver.find_element_by_xpath("//tr[.//td[text()='Total']]/td[2]").text)
或
print(driver.find_element_by_xpath("//td[text()='Total']/following-sibling::td[1]").text)
最佳做法是诱导WebDriverWait
(( 并等待visibility_of_element_located
((
print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//td[text()='Total']/following-sibling::td[1]"))).text)
您需要导入以下库。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
这应该有效:
//td[text()="Total"]/following-sibling::td[1]
您可以在此处进行测试:https://www.freeformatter.com/xpath-tester.html