selenium-webdriver - Webdriver Actionchains - 单击下一页不起作用
问题描述
我是新来的,我试图编写一个代码,该代码应该遍历所有 3090 页并提取表中给出的信息(框-b)。
但它不起作用。它似乎停留在第一页,并一遍又一遍地提取这些信息。
如果你们中的任何人知道我该如何解决它,请帮助我:)
劳拉
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import time
url = "https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#orderBy=kh&orderDirection=ASC"
driver = webdriver.Chrome('/Users/laraschneider/Downloads/chromedriver')
driver.get(url)
time.sleep(5)
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
number = 0
while number < 3090:
results_html = soup.find_all('div', "ttw-entry__box-b")
results = list()
for result in results_html:
results.append(result.text)
for t in results:
print(t)
time.sleep(5)
element = driver.find_element_by_xpath("/html/body/main/div/div[5]/div/div/div/div[2]/div[2]/div[2]/div[2]/button[2]/div")
action = ActionChains(driver)
action.move_to_element(element)
action.click(element).perform()
number = number+1
解决方案
使用driver.execute_script("arguments[0].click();", element)
而不是ActionChains
. 这是完整的代码:
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
url = "https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#orderBy=kh&orderDirection=ASC"
driver = webdriver.Chrome('/Users/laraschneider/Downloads/chromedriver')
driver.get(url)
time.sleep(5)
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
number = 0
while number < 3090:
results_html = soup.find_all('div', "ttw-entry__box-b")
results = list()
for result in results_html:
results.append(result.text)
for t in results:
print(t)
time.sleep(5)
element = driver.find_element_by_xpath('/html/body/main/div/div[5]/div/div/div/div[2]/div[2]/div[2]/div[2]/button[2]/div')
driver.execute_script("arguments[0].click();", element)
number = number+1
推荐阅读
- debugging - 调试重新编译 wil6210 驱动为 LEDE v17.01.2
- android - 计算器应用程序的问题
- excel - 使用索引将 FOR EACH 转换为 FOR
- java - 即使应用程序被杀死,如何防止警报被破坏?
- database-connection - Servicestack MySql 连接字符串
- mysql - 在 SELECT 的结果中替换具有相同属性的列
- r - R 修改默认函数行为 sys.date()
- javascript - Outlook Web 加载项在使用 displayInFrame:true 时出现错误
- css - 如何解决弹出覆盖问题
- html - 使屏幕阅读器可以访问自定义无线电控制