from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
import time
url = "https://www.bungol.ca/"
driver = webdriver.Firefox(executable_path ='/usr/local/bin/geckodriver')
driver.get(url)
#myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
searchbutt = """/html/body/section/div[2]/div/div[1]/form/div/button""" #click search to get to map
active_listing = """//*[@id="activeListings"]"""
search_wait = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, searchbutt)))
search_wait.click()
active_wait = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, active_listing)))
active_wait.click()
driver.find_element_by_xpath("""//*[@id="useDateRange"]""").click() #use data range
time.sleep(1)
driver.find_element_by_xpath("""//*[@id="dateRangeStart"]""").click() #start range
time.sleep(1)
month_path = driver.find_element_by_xpath("""/html/body/div[17]/div/div/div[1]/select""") #click the month to bring combo box list option
driver.execute_script("arguments[0].click();", month_path)
我正在尝试在此日历上选择 2015 年 1 月 1 日,这需要您单击:
使用日期范围(这样做没问题)
单击开始范围(没问题)
单击显示选项组合形式的月份(无法单击)
点击年份 - 无法点击
点击日期 - 无法点击
我试过:
通过 xpath 和 css 路径定位元素,但两种方法都不起作用。
move_to_element 方法,但仍然不起作用
切换到框架方法 - 不起作用,因为它不在 iframe 内
使用 javascript 点击它在这里找到:你如何点击使用 Selenium WebDriver 隐藏的元素?
滚动到元素 - 不做任何事情,因为元素已经在屏幕上