其中一个所需元素位于页面的右上角,除非我手动调整窗口大小以使元素存在,否则selenium将看不到它。如果我这样做,一切正常。 Selenium会找到元素,点击它,然后做我想做的事情。这是我在python中的代码
wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='15_button']")))
num_list = driver.find_element_by_xpath("//input[@id='15_button']")
num_list.click()
我尝试使用
调整窗口大小driver = webdriver.Chrome()
driver.set_window_size(1024, 1024)
driver.maximize_window()
在浏览器启动时确实使元素可见,但Selenium会给出错误
Message: unknown error: Element is not clickable at point (1206, 719). Other element would receive the click: <li id="15_input_5" class="selected">...</li>
有谁知道如何修复它?
非常感谢!
答案 0 :(得分:3)
错误表示您尝试点击element
的{{1}}不同element
。如果Selenium试图单击它,则实际上会在覆盖它的元素上发生单击,因此会抛出此错误。您可以使用javascript
点击它,这样无论element
是否被覆盖都无关紧要。
num_list = driver.find_element_by_xpath("//input[@id='15_button']")
driver.execute_script("arguments[0].click();", num_list)
另一个提示给你。在您的代码示例中:
wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='15_button']")))
num_list = driver.find_element_by_xpath("//input[@id='15_button']")
wait.until()
会在确定元素可点击后返回该元素。所以你可以像这样摆脱第二个find
:
num_list = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='15_button']")))