繁体   English   中英

无法定位元素、硒、python

[英]Unable to locate element, selenium, python

我试图从这个 url 获取 usdt 值: https ://exchange.mercuryo.io/?currency=USDT&fiat_amount=1000&fiat_currency=EUR&merchant_transaction_id=687fed73-2ecf-e5a5-d53d-bc6555cf92f2&theme=trustwallet&utm_medium=referral&utm_source=TrustWallet&widget_id=d468803-36 -b35a-9d208819ff4b&地址=0x6AEa3bAD71F023515032eAcf343119e27f03Af4F

但出现错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[contains(@class,'_5xe8d')]"}

我的代码:

driver.get(url_eur)
sleep(7)
eur = driver.find_element(by=By.XPATH , value="//input[contains(@class,'_5xe8d')]")
print(eur)

和 HTML:

<input class="_3fiPU _5xe8d " id="UbF6uAnDYp1TNJpC8fVQo" type="text" placeholder="0" data-test="to_amount_input" data-testid="toAmount" autocomplete="off" inputmode="decimal" value="983.65651">

您的解决方案 - 遵循“data-*”属性

不要尝试通过潜在的可变类值来查找 DOM 元素(例如 - React 元素可以在每个前端重新部署上具有随机类值)

尝试找到以下

//input[@data-testId="toAmount"]

我通过切换到框架解决了它。 该 HTML 在 iframe 中,所以我在下面添加了代码:

driver.get(url)
driver.implicitly_wait(10)
iframe = driver.find_element(by=By.XPATH, value="//iframe[@data-test='main_iframe']")
driver.switch_to.frame(iframe)
val = driver.find_element(by=By.XPATH, value="//input[@data-test='to_amount_input']")
print(val.get_attribute('value'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM