import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import webdriverwait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.select import Select driver = webdriver.Chrome() driver.get('https://www.baidu.com/') driver.maximize_window() driver.implicitly_wait(30) # 定位设置元素 set_ele = driver.find_element(by=By.XPATH, value="//span[text()='设置']") # 创建鼠标操作对象,添加动作,执行动作 ActionChains(driver).move_to_element(set_ele).perform() # 显式等待高级搜索可点击后点击 webdriverwait(driver, 5, 0.2).until( EC.element_to_be_clickable((By.XPATH, "//a[text()='高级搜索']")) ).click() # ---------------下拉选择框的选择,如果下拉框的标签是select标签----------------------- # # 定位到select标签元素 select_ele = driver.find_element(by=By.XPATH, value="//select[@ #相应的用于定位该select标签的属性#]" ) # # 创建一个下拉框对象 sel = Select(select_ele) # 这里只能把 select标签元素 创建为一个对象 time.sleep(1) # # 方式一:通过索引进行选择 sel.select_by_index(3) # # 方式二:通过文本进行选择 sel.select_by_visible_text('最近一年') # # 方式三:通过value进行选择 sel.select_by_value("#目标选项的value对应的值#") # ---------------下拉选择框的选择,如果下拉框的标签不是select标签----------------------- # 点击“全部时间”,使下拉框出现 driver.find_element(by=By.XPATH, value="//span[text()='全部时间']").click() time.sleep(1) # 为了看效果 # 定位到所有的选项元素,定位时选取所有选项的属性值相同的属性来定位(且不会纳入其他元素) options = webdriverwait(driver, 5, 0.5).until( EC.visibility_of_all_elements_located((By.XPATH, "//p[@data-for='gpc']")) ) # 列表格式数据取值(元素对象),点击相应的元素 options[1].click() # 点击第二个选项 time.sleep(3) driver.quit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。