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()