Selenium脚本不打印XPath值

2024-09-29 01:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了这个Selenium脚本作为一个练习来刮JS沉重的页面。你知道吗

程序,启动一个网站驱动程序进入一个网站,然后按下一个按钮,让他们都出现,然后我只想拉一些数据,俱乐部的名称,但有一个问题。你知道吗

它只是打印[],有人能告诉我我做错了什么吗?你知道吗

我的目标是得到像阿卡迪亚纳犬舍俱乐部这样的俱乐部的名字

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

option = webdriver.ChromeOptions()
option.add_argument(" - incognito")

browser = webdriver.Chrome('/home/djurovic/Desktop/Linux ChromeDriver/chromedriver', chrome_options=option)
browser.get('https://webapps.akc.org/club-search/?fbclid=IwAR1X9TkSI49bHgH3w4VmgrMS05sxLbbazaMO17Q1rEfVq7Pj4Ze66B4hdLM#/agility')

timeout = 20

buttonXpath = '//a[@class="button"]'
namesXpath = '//*[@class="ng-binding"]/text()'

try:
    buttonElement = WebDriverWait(browser, timeout).until(lambda browser: browser.find_element_by_xpath(buttonXpath))
    buttonElement.click()
    clubNames = WebDriverWait(browser, timeout).until(lambda browser: browser.find_elements_by_xpath(namesXpath))
    print(clubNames)
except TimeoutException:
    print('Timed out waiting for page to load')
    browser.quit()

Tags: fromimportbrowsersupport网站seleniumtimeoutclass
1条回答
网友
1楼 · 发布于 2024-09-29 01:35:45

'//*[@class="ng-binding"]/text()'XPath语法不受Selenium支持,因为XPath只能返回webelement。你知道吗

试试下面

buttonXpath = '//a[@class="button" and @name="Search"]'
namesXpath = '//a/strong[@class="ng-binding"]'

try:
    buttonElement = WebDriverWait(browser, timeout).until(lambda browser: browser.find_element_by_xpath(buttonXpath))
    buttonElement.click()
    clubNames = [club.text for club in WebDriverWait(browser, timeout).until(lambda browser: browser.find_elements_by_xpath(namesXpath))]
    for clubName in clubNames: 
        print(clubName)
except TimeoutException:
    print('Timed out waiting for page to load')
    browser.quit()

相关问题 更多 >