首页 > 解决方案 > 如果检查元素不起作用,您还能做什么?

问题描述

我一直在尝试使用 selenium 在 python 中打印帐户余额文本。我去chrome,检查元素,复制xpath,把它放在VS中,它说找不到xpath。我对 CSS 选择器、完整 xpath、尝试创建自己的 xpath、按类名尝试等做了同样的事情。我尝试了它拥有的每个选项。没有任何工作。当你遇到这种情况时你会怎么做?它在网站上,它必须可以在后台某个地方访问。必须是一种抓住它的方法。我已经能够让网站上的其他文本正确显示。

这只是一个股票模拟器游戏,如果您想登录并尝试获取正确的检查元素,我会向公众开放。

在此处输入图像描述

它生成的 xpath:

/html/body/div[4]/div[3]/div[1]/div[2]/ul/li[1]/span

我如何在 VS 中拥有它:

driver.find_element_by_xpath('/html/body/div[4]/div[3]/div[1]/div[2]/ul/li[1]/span')

VS中的错误:

Unable to locate element: {"method":"xpath","selector":"/html/body/div[4]/div[3]/div[1]/div[2]/ul/li[1]/span"}

标签: pythonseleniumxpathweb-scrapingwebdriver

解决方案


获取金额Net Worth使用WebDriverWait() 并等待visibility_of_element_located() 和后续xpath

print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//div[./span[text()='Net Worth']]/following::span[1]"))).text)

或者

print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//ul[@class='list list--kv']/li[1]/span"))).text)

您需要导入以下库。

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

推荐阅读