提交元素不可点击的硒python

Posted

技术标签:

【中文标题】提交元素不可点击的硒python【英文标题】:submit element not clickable selenium python 【发布时间】:2018-02-04 23:09:02 【问题描述】:

我试图打开 *** 并搜索查询,然后单击搜索按钮。 几乎一切都很好,只是我无法点击提交按钮

我遇到了错误

WebDriverException:未知错误:元素 ... 在点 (608, 31) 处不可点击。其他元素会 收到点击:(会话信息: chrome=60.0.3112.101)(驱动程序信息:chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),平台=Windows NT 6.1.7601 SP1 x86)

 browser=webdriver.Chrome()
    browser.get("https://***.com/questions/19035186/how-to-select-element-with-selenium-python-xpath")
    z=browser.find_element_by_css_selector(".f-input.js-search-field")#use .for class and replace space with .
    z.send_keys("geckodriver not working")
    submi=browser.find_element_by_css_selector(".svg-icon.iconSearch")
    submi.click()

【问题讨论】:

元素可能被css悬停效果或javascript移开。或者其他一些元素消耗点击事件。我只想尝试另一个 dom 元素来提交点击事件。例如#search input 我知道 css hover 或 dom 元素 那你应该研究一下。了解使用 Selenium 时浏览器工作原理的基础知识非常有用。 【参考方案1】:
<button type="submit" class="btn js-search-submit">
    <svg role="icon" class="svg-icon iconSearch"   viewBox="0 0 18 18">
        <path d="..."></path>
    </svg>
</button>

您正在尝试点击svg。该图标不可点击,但按钮可点击。

因此,将按钮选择器更改为.btn.js-search-submit 即可。

【讨论】:

【参考方案2】:

单击具有正确定位器的元素,您的按钮定位器是错误的。其他代码看起来不错

试试这个

browser=webdriver.Chrome()
browser.get("https://***.com/questions/19035186/how-to-select-element-with-selenium-python-xpath")
z=browser.find_element_by_css_selector(".f-input.js-search-field")#use .for class and replace space with .
z.send_keys("geckodriver not working")
submi=browser.find_element_by_css_selector(".btn.js-search-submit")
submi.click()

【讨论】:

【参考方案3】:

使用以下代码点击提交按钮:

browser.find_element_by_css_selector(".btn.js-search-submit").click()

【讨论】:

以上是关于提交元素不可点击的硒python的主要内容,如果未能解决你的问题,请参考以下文章

python中的硒:NoSuchElementException:消息:没有这样的元素:无法找到元素

使用Python中的硒,单击网页上的“下一步”按钮

为啥我的硒预期条件不能作为 python if 语句中的条件工作?

标有 ==$0 的硒重复元素

selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素不可点击 Selenium 和 Python

如何单击一个我看不到它的元素的硒框?