元素在碎片(硒)中是不可见的



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

<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中的"元素不可交互"硒错误?

相关内容

  • 没有找到相关文章

最新更新