页面+HTML:
在左侧的菜单项中,我在列表中有9个菜单项。我能够让 selenium 点击前 4 个,直到 id=item-3。
但是在包含 id=item-4 之后,Selenium 无法点击,并给我一个 No Such Element Exception。
我点击标准:
element = driver.find_element(By.ID, "item-3")
element.click()
为什么我做不到:
element = driver.find_element(By.ID, "item-4")
element.click()
一直到第 8 项?
起初我想我需要向下滚动,因为也许它也需要在屏幕上可见:
但我尝试滚动它仍然没有用。
我错过了一些明显的东西吗?我试过 XPATH,但它也给出了相同的结果。
调试遗漏元素的第一步是 检查 Chrome,看看浏览器看到了什么
F12 > 元素 > Ctrl+F
输入#item-4,看看浏览器是否看到它
这适用于 1920 x 1080
屏幕尺寸变小了吗?
尝试使用以下代码点击Buttons:
element = driver.find_element(By.XPATH, "//span[text()='Buttons']")
driver.execute_script("arguments[0].click();", element)
完整的工作代码:
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://demoqa.com/elements")
element = driver.find_element(By.XPATH, "//span[text()='Buttons']")
driver.execute_script("arguments[0].click();", element)
结果:
Process finished with exit code 0