Python3+Selenium3自动化测试-(五)
完成selenium的键盘事件和鼠标事件,接下来当然是要完成更多了。
通常情况下,在网页中会有一些下拉框进行选择或者给你一个弹框告诉你需要进行确认,遇到这样的情况如何解决呢,这里就来说一说……
# coding=utf-8 import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select driver = webdriver.Chrome() driver.get("https://www.baidu.com") time.sleep(5) # driver.find_element(By.ID, "kw").send_keys("selenium&python") # driver.find_element(By.ID, "su").click() # driver.find_element(By.XPATH, '/html/body/div[1]/div[5]/div[1]/div[2]/div[1]/div[2]/div[1]').click() # driver.find_element(By.XPATH, '/html/body/div[1]/div[5]/div[1]/div[2]/div[1]/div[1]/span[2]').click() # 折腾半天才发现定位出来的不是下拉框…… driver.find_element(By.LINK_TEXT, '设置').click() driver.find_element(By.LINK_TEXT, '搜索设置').click() time.sleep(2) sel = driver.find_element(By.XPATH, '//*[@id="nr"]') # 定位下拉框 Select(sel).select_by_value('50') # 通过value的值进行选定条目 driver.find_element(By.CLASS_NAME, 'prefpanelgo').click() time.sleep(2) driver.switch_to.alert.accept() # 此处同意警告框提示内容 time.sleep(2) driver.quit()
在百度首页想要进行设置每次搜索页面显示的数目,就会有一个下拉框进行选择,这里可以导入Select这个模块进行对下拉框进行选择,通常下拉框的列表是包含一个值的,这样就可以通过value来选定,完成设置之后,当然是要保存设置啦,点击保存发现,居然有一个弹框,这可如何是好,切换至alert之后接受吧……
通过在编辑器中的提示,我们同样可以给弹框发送一个值,当然这里设置中并没有出现这类情况。
这次对下拉框和弹框的处理过程中,折腾了不短时间,原因就是元素等待的问题,下回要仔细研究下元素等待的问题了。