Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 除非我手动调整窗口大小,否则Selenium不会看到元素_Python_Selenium_Selenium Chromedriver - Fatal编程技术网

Python 除非我手动调整窗口大小,否则Selenium不会看到元素

Python 除非我手动调整窗口大小,否则Selenium不会看到元素,python,selenium,selenium-chromedriver,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_b

其中一个所需元素位于页面的右角,除非我手动调整窗口大小以显示该元素,否则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>
有人知道怎么修吗


非常感谢

该错误意味着有一个不同的元素覆盖了您试图单击的元素。如果Selenium试图点击它,点击实际上会发生在覆盖它的元素上,因此它会抛出此错误。您可以使用javascript单击它,这样无论元素是否被覆盖都无所谓

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将在确定元素可单击后返回该元素。因此,您可以像这样摆脱第二个发现:


该错误意味着有另一个元素覆盖了您尝试单击的元素。如果Selenium试图点击它,点击实际上会发生在覆盖它的元素上,因此它会抛出此错误。您可以使用javascript单击它,这样无论元素是否被覆盖都无所谓

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将在确定元素可单击后返回该元素。因此,您可以像这样摆脱第二个发现:


您通常希望以用户希望的方式与站点交互。使用JS直接单击隐藏元素通常不是一个好的做法,因为用户不能这样做。找出隐藏该元素的内容并将其关闭,或者您可能只需要短暂等待该元素出现/消失。wait.until提示很好,但您可以进一步添加。单击到行的末尾,根本不需要将该元素存储在num_列表中。您通常希望以用户喜欢的方式与网站进行交互将使用JS直接单击隐藏元素通常不是一个好的做法,因为用户不能这样做。找出隐藏该元素的内容并将其关闭,或者您可能只需要短暂等待该元素出现/消失。wait.until提示很好,但您可以进一步添加。单击到行的末尾,根本不需要将该元素存储在num_列表中。