
[英]Unable to locate element using Selenium Python find element by xpath
[英]Unable to locate element method using find element by Xpath in Selenium?
我想在“mintMultiple: Input”中输入 0.5。 我尝试使用以下代码通过 Xpath 查找元素:
import numpy as np
import pandas as pd
from bs4 import BeautifulSoup as soup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path=r'C:\Users\Main\Documents\Work\Projects\Scraping Websites\extra\chromedriver')
my_url = "https://etherscan.io/address/0x6eed5b7ec85a802428f7a951d6cc1523181c776a#writeContract"
driver.get(my_url)
time.sleep(2)
your_input = driver.find_element_by_xpath(r'//input[@id="input_payable_3_mintMultiple"]')
但是,我得到了这个错误,我尝试使用延迟而不是使用其他来源建议的延迟,但我得到了同样的错误。
NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@id="input_payable_3_mintMultiple"]"}
(Session info: chrome=96.0.4664.45)
这表明 Xpath 是正确的,因为它在 HTML 中以黄色突出显示。
https://etherscan.io/address/0x6eed5b7ec85a802428f7a951d6cc1523181c776a#writeContract
这是因为输入隐藏在下拉选项卡中,不会显示在 HTML 下。 为了使元素可交互,您必须首先单击下拉选项卡。 在“your_input”变量之前添加以下代码行:
driver.find_element_by_xpath("//*[@id="heading3"]/a").click() #dropdown tab
此外要完成代码:
your_input.click()
your_input.send_keys("0.5")
该元素位于iframe内。 所以你必须切换到框架,你可以使用以下定位器策略:
driver.get("https://etherscan.io/address/0x6eed5b7ec85a802428f7a951d6cc1523181c776a#writeContract")
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#btnCookie"))).click()
WebDriverWait(driver, 5).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#writecontractiframe")))
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.LINK_TEXT, "3. mintMultiple"))).click()
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#input_payable_3_mintMultiple"))).send_keys("0.5")
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.