无法定位元素:硒
Unable to locate element: Selenium
我想 select 更多信息 link 单击它。我已经尽我所能,但每次错误 NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector" 弹出。
起初,我想可能是因为我没有正确更改选项卡,这就是显示此错误的原因。但是,即使在使用 window_handles 之后,我仍然无法在此页面上找到任何元素。
请帮助!
self.driver.window_handles
base = self.driver.window_handles[0]
child = self.driver.window_handles[1]
window_set = {self.driver.window_handles[0], self.driver.window_handles[1]}
for x in window_set:
if(base != x):
self.driver.switch_to.window(x)
self.driver.find_element_by_id("mc-lnk-moreInfo").click()
尝试wait for the element然后点击
替换
self.driver.find_element_by_id("mc-lnk-moreInfo").click()
有以下
self.more_info = WebDriverWait(self.driver, 30).until(
ec.visibility_of_element_located((By.ID, "//a[@id='mc-lnk-moreInfo']")))
ActionChains(self.driver).move_to_element(self.more_info).click().perform()
在您的导入中添加以下内容
from selenium.webdriver import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
请使用包含和 ID 检查以下解决方案
包含
的Xpath
element= WebDriverWait(self.driver, 30).until(
EC.element_to_be_clickable((By.XPATH, '//*[contains(text(), 'More information')]')))
self.driver.execute_script("arguments[0].click();", element)
或
具有 ID
的 Xpath
element= WebDriverWait(self.driver, 30).until(
ec.element_to_be_clickable((By.ID, "//a[@id='mc-lnk-moreInfo']")))
self.driver.execute_script("arguments[0].click();", element)
工作解决方案:
driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe")
driver.maximize_window()
wait = WebDriverWait(driver, 10)
driver.get("your url")
childframe = wait.until(EC.presence_of_element_located((By.NAME, "mainFrame")))
driver.switch_to.frame(childframe)
element=wait.until(EC.element_to_be_clickable((By.ID, "mc-lnk-moreInfo")))
print element.text
element.click()
注意:请将以下导入添加到您的解决方案中
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
输出:
我想 select 更多信息 link 单击它。我已经尽我所能,但每次错误 NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector" 弹出。
起初,我想可能是因为我没有正确更改选项卡,这就是显示此错误的原因。但是,即使在使用 window_handles 之后,我仍然无法在此页面上找到任何元素。
请帮助!
self.driver.window_handles
base = self.driver.window_handles[0]
child = self.driver.window_handles[1]
window_set = {self.driver.window_handles[0], self.driver.window_handles[1]}
for x in window_set:
if(base != x):
self.driver.switch_to.window(x)
self.driver.find_element_by_id("mc-lnk-moreInfo").click()
尝试wait for the element然后点击
替换
self.driver.find_element_by_id("mc-lnk-moreInfo").click()
有以下
self.more_info = WebDriverWait(self.driver, 30).until(
ec.visibility_of_element_located((By.ID, "//a[@id='mc-lnk-moreInfo']")))
ActionChains(self.driver).move_to_element(self.more_info).click().perform()
在您的导入中添加以下内容
from selenium.webdriver import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
请使用包含和 ID 检查以下解决方案
包含
的Xpath element= WebDriverWait(self.driver, 30).until(
EC.element_to_be_clickable((By.XPATH, '//*[contains(text(), 'More information')]')))
self.driver.execute_script("arguments[0].click();", element)
或
具有 ID
的 Xpathelement= WebDriverWait(self.driver, 30).until(
ec.element_to_be_clickable((By.ID, "//a[@id='mc-lnk-moreInfo']")))
self.driver.execute_script("arguments[0].click();", element)
工作解决方案:
driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe")
driver.maximize_window()
wait = WebDriverWait(driver, 10)
driver.get("your url")
childframe = wait.until(EC.presence_of_element_located((By.NAME, "mainFrame")))
driver.switch_to.frame(childframe)
element=wait.until(EC.element_to_be_clickable((By.ID, "mc-lnk-moreInfo")))
print element.text
element.click()
注意:请将以下导入添加到您的解决方案中
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
输出: