Y_K*_*_KL 1 python selenium selenium-chromedriver
所需元素之一位于页面的右上角,除非我手动调整窗口大小以显示该元素,否则 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()
Run Code Online (Sandbox Code Playgroud)
我试图通过使用调整窗口大小
driver = webdriver.Chrome()
driver.set_window_size(1024, 1024)
driver.maximize_window()
Run Code Online (Sandbox Code Playgroud)
这确实使元素在浏览器启动时可见,但是 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>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决它?
非常感谢!
该错误意味着您尝试单击的element覆盖物有所不同element。如果 Selenium 试图点击它,点击实际上会发生在覆盖它的元素上,因此它会抛出这个错误。您可以使用javascript单击它,这样它是否element被覆盖都无关紧要。
num_list = driver.find_element_by_xpath("//input[@id='15_button']")
driver.execute_script("arguments[0].click();", num_list)
Run Code Online (Sandbox Code Playgroud)
给你的另一个提示。在您的代码示例中,您正在执行以下操作:
wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='15_button']")))
num_list = driver.find_element_by_xpath("//input[@id='15_button']")
Run Code Online (Sandbox Code Playgroud)
wait.until()一旦确定它是可点击的,将返回该元素。所以你可以find像这样摆脱第二个:
num_list = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='15_button']")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |