python - 如果检查元素不起作用,您还能做什么?
问题描述
我一直在尝试使用 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"}
解决方案
获取金额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
推荐阅读
- testing - VSTS 到 TFS 2015 测试用例导入
- r - CVXR和glmnet(弹性网)的比较
- java - Java:为什么我的 List 包含不同的类型?(过滤列表)
- android - 免费和付费上传应用程序
- swift - 如何在 Swift 中自动生成的键上查询OrderedByValue?
- vue.js - Nuxt/Vue:如何定位自定义加载组件
- java - 在固定的天数后禁用 Javafx 文本字段和按钮
- visual-studio-code - vscode:转到其他编辑器窗格中的定义
- javascript - 从现有数组创建一个新数组
- go - Golang Nacl Secretbox 中的 Bip32 密钥加密