【发布时间】:2015-05-27 18:12:40
【问题描述】:
这是一个爱好项目,所以我可以更熟悉 Selenium。
我有一个日期列表。我想获取每个日期的电影时间。我可以毫无问题地加载剧院网站和日历,但是当我选择特定的日期时,我被卡住了。如何使用 Selenium 单击日历中的日期?
这是我目前所拥有的。打开浏览器,加载页面,点击打开日历:
from selenium import webdriver
browser = webdriver.Firefox()
url = "https://www.amctheatres.com/movie-theatres/los-angeles/amc-promenade-16"
browser.get(url)
browser.find_element_by_xpath(".//*[@id='showtime-date']").click()
browser.implicitly_wait(3)
到目前为止,我的三个尝试都没有奏效。
尝试 1: 当我尝试通过文本查找链接时,我得到:
NoSuchElementException:消息:无法定位元素
elem = browser.find_element_by_link_text('28').click()
尝试 2:
这个 xpath 找到元素并且点击方法有效,但我希望能够通过字符串文本选择一天
xpath = ".//*[@id='theatre-showtimes-202']/div/div[2]/div[1]/div/div/div[1]/table/tbody/tr[5]/td[5]"
elem = browser.find_element_by_xpath(xpath).click()
尝试 3:
通过 xpath 和 text 找到元素可以工作,但是 click 方法没有做任何事情
xpath_by_text = '//td[contains(text(), "28")]'
elem = browser.find_element_by_xpath(xpath_by_text).click()
如何按天数找到日历日然后点击?
【问题讨论】:
-
您可以使用绝对 xpath 而不是相对路径。
标签: python python-3.x selenium selenium-webdriver