python - Python Selenium 无法单击()按钮
问题描述
我正在尝试从这里自动抓取链接:
一旦我有了第一页,我想单击底部的右 V 形,以便移动到第二个、第三个等等。刮掉中间的链接。
不幸的是,我尝试的任何方法都不会让我将 chrome 发送到下一页。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from datetime import datetime
import csv
from selenium.webdriver.common.action_chains import ActionChains
#User login info
pagenum = 1
#Creates link to Chrome Driver and shortens this to 'browser'
path_to_chromedriver = '/Users/abc/Downloads/chromedriver 2' # change path as needed
driver = webdriver.Chrome(executable_path = path_to_chromedriver)
#Navigates Chrome to the specified page
url = 'https://thegoodpubguide.co.uk/pubs/?paged=1&order_by=category&search=pubs&pub_name=&postal_code=®ion=london'
#Clicks Login
def findlinks(address):
global pagenum
list = []
driver.get(address)
#wait
while pagenum <= 2:
for i in range(20): # Scrapes available links
xref = '//*[@id="search-results"]/div[1]/div[' + str(i+1) + ']/div/div/div[2]/div[1]/p/a'
link = driver.find_element_by_xpath(xref).get_attribute('href')
print(link)
list.append(link)
with open("links.csv", "a") as fp: # Saves list to file
wr = csv.writer(fp, dialect='excel')
wr.writerow(list)
print(pagenum)
pagenum = pagenum + 1
element = driver.find_element_by_xpath('//*[@id="search-results"]/div[2]/div/div/ul/li[8]/a')
element.click()
findlinks(url)
有什么东西挡住了我没有看到的按钮吗?
我的终端中打印的错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="search-results"]/div[2]/div/div/ul/li[8]/a"}
解决方案
尝试这个 :
element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[class='next-page btn']"))
element.click()
推荐阅读
- php - 如何使用 pdo 连接到 mysql
- ruby-on-rails - 使用部分渲染表单集合
- html - How to fix the relative paths in action attribute in form tag (html)
- c# - Adobe Reader 无法识别 iText 7 文本水印注释 - 无法编辑的文本
- c++ - glDrawElements 可以独立于多边形类型使用吗?
- matplotlib - Matplotlib 图的默认宽度和高度
- lua - Unable to load Lua Scripts to NodeMCU: Invalid node.chipid()
- c - 非常简单的普通 C 非负整数解析器的非常奇怪的行为
- javascript - 在 Puppeteer 中使用 page.$eval() 时如何将变量放入浏览器上下文中?
- swift - 在swift的代码中修改高度约束后,UILabel不显示全文