Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 元素在Splitter中不可见(硒)_Python_Selenium_Automation_Splinter_Chrome Web Driver - Fatal编程技术网

Python 元素在Splitter中不可见(硒)

Python 元素在Splitter中不可见(硒),python,selenium,automation,splinter,chrome-web-driver,Python,Selenium,Automation,Splinter,Chrome Web Driver,填写表单后,我尝试单击以下提交按钮: <div class="tl_formbody_submit"> <div class="tl_submit_container"> <input type="submit" class="tl_submit" value="Einstellungen speichern" onclick="Backend.getScrollOffset()"> </div> stacktrace说,元素是不

填写表单后,我尝试单击以下提交按钮:

<div class="tl_formbody_submit">
   <div class="tl_submit_container">
     <input type="submit" class="tl_submit" value="Einstellungen speichern" onclick="Backend.getScrollOffset()">
</div>
stacktrace说,元素是不可见的,但是为什么呢


谢谢

如果stacktrace表示元素不可见,则表示在您试图查找它时它不可见

可能是使其可见所需的一些操作(一些ajax请求),或者您只需要等待一段时间,然后单击它

您可以使用显式等待,如下所述

submit_button = WebDriverWait(driver, 30).until(EC.visibility_of_any_elements_located((By.XPATH, "//input[@class='tl_submit']")))
submit_button.click()

元素“不可见”的原因之一是分配xpath时出错。最好的方法是从html(inspect元素)复制xpath并粘贴它。它适用于大多数情况,试试看

你可以检查下面的链接,我也有一个类似的问题,可能的解决方案可以在这里,但对我来说,上述解决方案是好的。

提供python代码之前,您可以尝试一个wait函数,看看这是否会有所不同,因为元素不可见。在这条线前等一下怎么样?等了10秒,它也不起作用了。表单是数据库凭据()。请增加超时时间。不工作…:/认为等待不是解决办法,它需要一个特殊的“黑客”。。。这是安装文件,而此代码可能会回答此问题,并提供有关此代码为什么和/或如何回答此问题的其他上下文,以提高其长期价值。请尝试解释您在回答中编写的链接。@MohamadShahrestani我遇到了类似的问题,可能会在那里找到解决方案。上面也提到了我的正确答案。
submit_button = WebDriverWait(driver, 30).until(EC.visibility_of_any_elements_located((By.XPATH, "//input[@class='tl_submit']")))
submit_button.click()
# import options 
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

# desired url link 
URL = 'www.path.com'

#driver & settings 
driver = webdriver.Chrome('PATH TO CHROMEDRIVER.EXE')
driver.get('URL')
driver.delete_all_cookies

#find element & click 
driver.find_element_by_id("Einstellungen speichern").click()