1

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

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

堆栈跟踪说,该元素不可见 - 但为什么呢?

谢谢!

4

3 回答 3

1
# 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()
于 2019-09-01T06:06:16.297 回答
0

如果堆栈跟踪说元素不可见,如果意味着当你试图找到它时它不可见。

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

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

submit_button = WebDriverWait(driver, 30).until(EC.visibility_of_any_elements_located((By.XPATH, "//input[@class='tl_submit']")))
submit_button.click()
于 2017-08-02T10:28:12.007 回答
0

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

您可以查看下面的链接,我也遇到了类似的问题,可能的解决方案可以在这里,但对我来说,上述解决方案很好。 如何修复 Python 中的“元素不可交互”Selenium 错误?

于 2019-09-01T06:13:53.417 回答