填写表格后,我尝试单击以下提交按钮:
<div class="tl_formbody_submit">
<div class="tl_submit_container">
<input type="submit" class="tl_submit" value="Einstellungen speichern" onclick="Backend.getScrollOffset()">
</div>
代码为:
browser.find_by_xpath('//input[@class="tl_submit"]').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()
如果堆栈跟踪说元素不可见,则表示当您尝试查找它时它不可见。
可能是需要执行某些操作才能使其可见(某些 Ajax 请求(,或者您可能只需要等待一段时间即可单击它。
您可以使用显式等待,如下所述。
submit_button = WebDriverWait(driver, 30).until(EC.visibility_of_any_elements_located((By.XPATH, "//input[@class='tl_submit']")))
submit_button.click()
元素">
不可见"的原因之一是由于分配 xpath 时出错。最好的方法是从html(检查元素(中复制xpath并粘贴它。它适用于大多数情况,请尝试一下。
您可以查看下面的链接,我也遇到了类似的问题,可能的解决方案可以在这里,但对我来说,上述解决方案很好。 如何修复Python中的"元素不可交互"硒错误?