Selenium-python单击按钮始终返回错误 - javascript

我正在尝试使用python-selenium绑定单击一个按钮;到目前为止没有任何运气尝试过各种选择器。我正在使用Chromedriver。

我可以选择使用elem = driver.find_element(by='xpath', value="//div[@id='gwt-debug-search-button']")的元素,没有错误,但是尝试单击时会显示element is not visible

我已经使用了动作链,它没有任何错误,但是没有单击按钮。我无法弄清楚问题。如果您以前解决过类似的问题,请分享。

get_ideas = driver.find_element(by='xpath', value="//span[@id='gwt-debug-search-button-content'][normalize-space()='Get ideas']")
chains = ActionChains(driver)
chains.click(on_element=elem).perform()

这是html来源:

<div tabindex="0" class="goog-button-base goog-inline-block goog-button aw-btn aw-larger-button aw-save-button" role="button" id="gwt-debug-search-button">
    <input type="text" tabindex="-1" role="presentation" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;">
        <div class="goog-button-base-outer-box goog-inline-block">
            <div class="goog-button-base-inner-box goog-inline-block">
                <div class="goog-button-base-pos">
                    <div class="goog-button-base-top-shadow">&nbsp;</div>
                    <div class="goog-button-base-content">
                        <span id="gwt-debug-search-button-content">Get ideas</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

参考方案

我从未使用过ActionChains更喜欢这种方法:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait #set wait time
from selenium.webdriver.support import expected_conditions as EC #specify the expected condition

driver = webdriver.Firefox() # Or whatever you prefer
driver.get(your_website_url)
WebDriverWait(driver, 30).until(EC.title_contains(my_website_title))

在您的情况下,您可能希望驱动程序等待页面包含要单击的按钮。

关于单击按钮,我建议您使用类似以下的方法:

# option 1
get_ideas = driver.find_element_by_xpath("//span[@id='gwt-debug-search-button-content']")
# option 2
get_ideas = driver.find_element_by_link_text("Get ideas")

get_ideas.click()

Selenium:如何使RemoteDriver始终附加到当前的浏览器选项卡? - javascript

我正在开发一个Windows应用程序,该应用程序可以通过语音命令操纵浏览器。我想适当地处理用户添加一些标签并根据需要更改所选标签的情况。事实证明,RemoteDriver仅与一个选项卡一起使用,并且可以通过提供选项卡手柄将焦点切换到另一个选项卡。但是我不知道如何获取选定的选项卡句柄并始终检查选定的选项卡是否已更改,或者是否存在始终与选定的选项卡一起使用的方法…

Selenium:在进行JavaScript调用时无需点击即可获得最终的href /链接 - javascript

我正在抓取一长串的html链接(在ToS下允许)。但是,所有链接都是javascript调用(href =“ javascript :;”),因此使用get_attribute()获取链接将不起作用。我不想实际单击所有链接,因为它会为每个链接下载一个较大的pdf文件是否有可能获得最终调用的href /链接,而无需实际单击链接并下载文件?谢谢! 参考方案 是的…

使用IJavaScriptExecutor时如何挂钩自定义JavaScript触发器 - javascript

我们在Web应用程序中定义了此事件,该事件创建了一个名为timelineEventClicked的自定义触发器canvas.addEventListener('click', function (evt) { evt.stopImmediatePropagation(); var mousePos = getMousePos(canvas…

找到Python Selenium Webdriver元素,但无法单击它 - javascript

目标是单击登录页面上的复选框。我通过XPATH找到了元素,但是无法单击它。>>> elem = driver.find_element_by_xpath("//input[@type='checkbox'][@name='conditions']") >>> el…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…