Python 在驱动程序中。执行\u javascript。您可以做的一件事是尝试使用jQuery的detach函数简单地删除我注意到的有问题的javascript。我认为可以通过以下方式实现这一目标: driver = webdriver.Firefox(); ... Launch = r'//*[@id="HME-8-widget_launch_button"]' link = driver.find_element_by_xpath(Launch) act.move_to_element(link) act.click() act.perform() css = "div.hm-widget-element > script" scripts = driver.find_elements_by_css_selector(css)

Python 在驱动程序中。执行\u javascript。您可以做的一件事是尝试使用jQuery的detach函数简单地删除我注意到的有问题的javascript。我认为可以通过以下方式实现这一目标: driver = webdriver.Firefox(); ... Launch = r'//*[@id="HME-8-widget_launch_button"]' link = driver.find_element_by_xpath(Launch) act.move_to_element(link) act.click() act.perform() css = "div.hm-widget-element > script" scripts = driver.find_elements_by_css_selector(css),python,selenium,webdriver,Python,Selenium,Webdriver,这将存储图像中(至少)两个脚本的数组,因此脚本[0]将识别高亮显示元素上方的脚本。下面应该从DOM中删除该标记,这样您就可以(希望)不受阻碍地单击按钮 driver.execute_script('Arguments[0].remove()', scripts[0]) 如果这不起作用,最后一件事是尝试删除高亮显示元素后面的脚本。我不完全确定它是做什么的,但它似乎与您的目标元素有关 driver.execute_script('Arguments[0].remove', scripts[1])

这将存储图像中(至少)两个
脚本的数组,因此
脚本[0]
将识别高亮显示元素上方的脚本。下面应该从DOM中删除该标记,这样您就可以(希望)不受阻碍地单击按钮

driver.execute_script('Arguments[0].remove()', scripts[0])
如果这不起作用,最后一件事是尝试删除高亮显示元素后面的脚本。我不完全确定它是做什么的,但它似乎与您的目标元素有关

driver.execute_script('Arguments[0].remove', scripts[1])
如果采用这种方法,我会在页面加载之后,在浏览器中执行任何操作之前添加javascript执行

再说一次,我无法测试它,所以请告诉我这是怎么回事。

您可以这样使用

launchXpath = "//button[@id='HME-8-widget_launch_button']"
launchBtn = driver.find_element_by_xpath(launchXpath )
launchBtn.click()
建议:您也可以使用
id
而不是
xpath

,您可以这样使用

launchXpath = "//button[@id='HME-8-widget_launch_button']"
launchBtn = driver.find_element_by_xpath(launchXpath )
launchBtn.click()


建议:您也可以使用
id
而不是
xpath

请使用代码片段工具via插入html,而不是粘贴图像。有什么错误吗?@ALvinDas。请读一读为什么会这样。考虑使用格式化的基于文本的相关HTML、代码试验和错误堆栈跟踪更新问题。@ DerbanjanB,您知道复制Chrome DEV控制台中的HTML的TEXT的任何方法吗?我无法突出显示和复制整个内容,我只能一行一行地复制,这对工作来说太单调了。我想知道其他人是否也有同样的问题,这就是为什么selenium标记经常看到这样的图片。请检查您要单击的元素上方的html结构中是否存在iframe?请使用代码片段工具via插入html,而不是粘贴图像。有无错误或其他情况?@ALvinDas。请读一读为什么会这样。考虑使用格式化的基于文本的相关HTML、代码试验和错误堆栈跟踪更新问题。@ DerbanjanB,您知道复制Chrome DEV控制台中的HTML的TEXT的任何方法吗?我无法突出显示和复制整个内容,我只能一行一行地复制,这对工作来说太单调了。我想知道其他人是否也有同样的问题,这就是为什么selenium标记经常看到这样的图片。你能检查一下你想要单击的元素上方的html结构中是否存在iframe吗?我也尝试过ID,同样的问题…什么都没有发生。我试过了。当我打印时,所有结果都指向同一个元素。但它不会响我也试过ID,同样的问题…什么都没发生。我试过了。当我打印时,所有结果都指向同一个元素。但不会click@CPeck我正在使用一个函数并传入原始字符串,该字符串适用于目前为止的所有链接。但我确实尝试了你的方法,没有发生任何事情,也没有错误输出。整个代码位于try异常块中,不会生成任何错误。它只是不会点击并打开下一页。请查看我在答案底部添加的编辑,并告诉我这是否有帮助。再次强调,查看完整的HTML或获取相关页面的链接将非常有帮助。@CPeck感谢您的输入:我尝试了两种方法:link=driver。通过css_选择器(“button”#HME-8-widget_launch_button”)和link=driver查找元素。通过xpath(//*[@id='HME-8-widget_launch_button'])查找元素。我打印link的内容,它们标识相同的元素,应该是图像中以蓝色突出显示的启动按钮。它就是不点击。我想我已经找到了点击不起作用的原因——请参阅我答案的最新编辑,以获得解释和一些可能的解决方案。@CPeck我正在使用一个函数并传入原始字符串,该字符串适用于到目前为止的所有链接。但我确实尝试了你的方法,没有发生任何事情,也没有错误输出。整个代码位于try异常块中,不会生成任何错误。它只是不会点击并打开下一页。请查看我在答案底部添加的编辑,并告诉我这是否有帮助。再次强调,查看完整的HTML或获取相关页面的链接将非常有帮助。@CPeck感谢您的输入:我尝试了两种方法:link=driver。通过css_选择器(“button”#HME-8-widget_launch_button”)和link=driver查找元素。通过xpath(//*[@id='HME-8-widget_launch_button'])查找元素。我打印link的内容,它们标识相同的元素,应该是图像中以蓝色突出显示的启动按钮。我想我已经弄明白了为什么点击不起作用了——请参阅我答案的最新编辑,以获得解释和一些可能的解决方案。
driver.find_element_by_css_selector('div.hm-widget.hc-button').click()
css = "div.hm-widget-element > script"
scripts = driver.find_elements_by_css_selector(css)
driver.execute_script('Arguments[0].remove()', scripts[0])
driver.execute_script('Arguments[0].remove', scripts[1])
launchXpath = "//button[@id='HME-8-widget_launch_button']"
launchBtn = driver.find_element_by_xpath(launchXpath )
launchBtn.click()