无法定位元素、硒、蟒蛇



我试图从这个url获取usdt值:https://exchange.mercuryo.io/?currency=USDT& fiat_amount = 1000, fiat_currency = EUR& merchant_transaction_id = 687 fed73-2ecf-e5a5-d53d-bc6555cf92f2&主题= trustwallet& utm_medium = referral& utm_source = trustwallet& widget_id = d13d7a03 f965 - 4688 b35a - 9 - d208819ff4b&地址= 0 x6aea3bad71f023515032eacf343119e27f03af4f

但是得到一个错误:

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'))

最新更新