簡體   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