python selenium单击按钮xpath

2024-06-06 21:04:33 发布

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

我正试图刮一个airbnb的名单。除了点击“更多”,我想不出一个方法来获得所有的便利设施。我正在使用selenium来模拟单击,但它似乎不起作用。

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()

Tags: 方法fromimporturldriverseleniumactioncommon
2条回答

实现这一点的一个非常简单的方法如下

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

对我有用希望对你也有用。

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()

注意,您只需使用WebElementclick()方法即可:

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

对我有用。


如果出现NoSuchElementException错误,则可能需要等待通过^{}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()

相关问题 更多 >