python selenium单击按钮xpath错误

Bor*_*t14 3 python selenium web-scraping

我正在尝试刮除Airbnb清单。除了单击“更多”以外,我想不出一种获取全部设施的方法。我正在使用硒来模拟点击,但是它似乎并不起作用。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

url = 'https://www.airbnb.com/rooms/4660676'
driver = webdriver.Firefox()
driver.get(url)
elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
actions.click(elem).perform()
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 6

XPath本身是正确的,但是您尚未定义actions

from selenium.webdriver.common.action_chains import ActionChains

elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')

actions = ActionChains(driver)
actions.click(elem).perform()
Run Code Online (Sandbox Code Playgroud)

请注意,您可以简单地使用WebElementclick()方法来代替:

elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
elem.click()
Run Code Online (Sandbox Code Playgroud)

为我工作。


如果遇到NoSuchElementException错误,则可能需要等待通过WebDriverWait和可单击的链接element_to_be_clickable

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

element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//a[@class="expandable-trigger-more"]'))
)
element.click()
Run Code Online (Sandbox Code Playgroud)