使用python +硒单击按钮 - javascript

我在python中使用硒访问了带有chrome的iens网站。我希望我的脚本单击“ Volgende”(在荷兰语中表示“ Next”),以移至下一页。但是,我收到以下错误消息:

selenium.common.exceptions.WebDriverException: Message: unknown error:
Element is not clickable at point (853, 667). Other element would 
receive the click: <div class="cookiePolicy-content">...</div>

我猜想硒进入网站时弹出的cookie出了问题。到目前为止,我还无法找出解决Cookie的方法。

到目前为止,我的代码:

from selenium import webdriver

chrome_path = '/Users/username/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.iens.nl/restaurant+utrecht')

link = driver.find_element_by_link_text("Volgende")
link.click()

这是网站:https://www.iens.nl/restaurant+utrecht

参考方案

是的,这是由于底部的cookie浮动页脚。 Selenium将您的按钮滚动到视图中,但是它没有意识到它需要将其滚动到cookie浮动div上方。

我建议单击cookie消息上的关闭按钮,或者从cookie消息后面滚动出元素。

要关闭cookie,您需要单击关闭并等待它消失:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By


chrome_path = '/Users/username/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.iens.nl/restaurant+utrecht')

# Wait for cookie message
close_icon = WebDriverWait(driver, 5, 0.25).until(ec.visibility_of_element_located([By.CSS_SELECTOR, '.cookiePolicy-close']))
close_icon.click()
# Wait for cookie message to disappear
WebDriverWait(driver, 5, 0.25).until(ec.invisibility_of_element_located([By.CSS_SELECTOR, '.cookiePolicy-close']))
link = driver.find_element_by_link_text("Volgende")
link.click()

要从cookie消息后面滚动元素:

编辑:看来此页面也有一个浮动的顶部标题,因此您实际上不能只将其滚动到页面顶部...您需要将其从cookie消息后面滚动出去。

from selenium import webdriver

chrome_path = '/Users/username/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.iens.nl/restaurant+utrecht')

link = driver.find_element_by_link_text("Volgende")
# Scroll to element as Selenium would
driver.execute_script('arguments[0].scrollIntoView(false);', link)
# Then scroll it up to get it out from behind the message
driver.execute_script('window.scrollBy(0, 200)')
link.click()

编辑:我已经确认这两个选项都可以

Javascript + Python:将数组发送到Python脚本,将结果返回给Javascript - javascript

我想建立一个网页,该网页通过Javascript API进行许多Facebook状态更新,并将它们分类到一个数组中。然后,我想将此数组发送到Python脚本,该脚本可以专门使用NLTK.进行语言分析。在Python中获得合适的结果后,我想将结果从该脚本返回到Javascript,以显示给用户等。听起来可能吗? javascript大神给出的解决方案 是的,完…

使用python(绕过onclick)检索动态网站的源代码 - javascript

我希望检索一个网站的资源,该资源是在单击链接后动态生成的。链接本身如下:<a onclick="function(); return false" href="#">Link</a> 这阻止了我直接查询URL,该URL将使我能够获取动态生成的网站(urllib / 2)。一个人如何检索通过pyt…

在Java中,执行“ ++++++++”表达式,编译器未报告任何错误并且可以正确执行? - java

我用eclipse编写了这段代码,用war写过,结果为3d。public static void main(String[] args) { double a = 5d + + + + + +-+3d; System.out.println(a); } 参考方案 您的表情可以改写为(5d) + (+ + + + +-+3d) 其中第一个+是应用于两个操作数的…

标签名称属性带有+和引号 - javascript

当数据从数据库到网格中的视图时,标签名称属性带有+和引号,但我不希望这样做:以下是我正在执行的代码@if (ViewBag.ExperienceDetailsGrid != null) { var ExprowCount = 1; Foreach (var item in ViewBag.ExperienceDetailsGrid) { <tr cla…

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…