Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert

学习目的:


 

  掌握页面常规元素的定位方法


场景:


 

  网页正常的select元素下拉框常规方法和select专属方法

 

正式步骤:


 

step1:常规思路select页面元素定位


 

处理HTML代码截图

 

# -*-  coding:utf-8 -*-
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
#常规select方法:百度首页设置搜索结果显示条目数
url = "https://www.baidu.com"
dr = webdriver.Chrome()
dr.get(url)
# dr.find_element_by_link_text('设置').click()
# dr.find_element_by_class_name("setpref").click()
# time.sleep(1)
# dr.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
#常规方法二:鼠标移动悬浮到设置按钮上点击搜索设置
mouse = dr.find_element_by_link_text('设置')
ActionChains(dr).move_to_element(mouse).perform()
dr.find_element_by_class_name("setpref").click()
time.sleep(1)
dr.find_element_by_xpath('//*[@id="nr"]/option[3]').click()

time.sleep(3)
dr.close()#close是退出当前窗口,quit是退出整个dr进程

  

step2:Select专有方法,即selenium内置方法


 

处理HTML代码截图

 

 解决方案:

# -*-  coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time

url = 'https://www.baidu.com'
dr = webdriver.Chrome()
dr.get(url)
dr.find_element_by_link_text('设置').click()
dr.find_element_by_class_name("setpref").click()
time.sleep(1)
#method_1
s1 = dr.find_element_by_id('nr')
Select(s1).select_by_visible_text('每页显示50条')
time.sleep(3)

#method_2
s2 = dr.find_element_by_id('nr')
Select(s2).select_by_value('20')
time.sleep(3)

#method_3
s3 = dr.find_element_by_id('nr')
Select(s3).select_by_index('0')
time.sleep(1)

dr.quit()

  

step3: 处理alert弹出框


 

处理情景截图,需要点击“确定”按钮,但此按钮无相应的html元素

 

解决方案:

# -*-  coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
"""
如果弹出有弹出框需要你输入内容,那么就要使用定位元素后的send_keys()来输入内容
弹出框的确定可以按F12来查看页面元素,如果有对应的HTML元素,则正常定位,但是需要切换句柄才能操作
"""
url = 'https://www.baidu.com'
dr = webdriver.Chrome()
dr.get(url)
dr.find_element_by_link_text('设置').click()
dr.find_element_by_class_name("setpref").click()
time.sleep(1)   #此步骤必须加等待时间
dr.find_element_by_link_text("保存设置").click()
# time.sleep(1)
test_alert = dr.switch_to.alert()  # 切换到alert
def alert_display():
    try:
        t = test_alert.text
        print(t)
        return True
    except:
        return False
if alert_display():
    test_alert.accept() #accept表示点击确定
    test_alert.dismiss()#dismiss表示不接受弹出框
else:
    print("alert未弹出")

dr.quit()

 

 

难点分析:


 

  初次使用的时候,需要多看内置方法

 

学习总结:


 

  需要多操作,建立一个常用操作库参考

posted @ 2019-08-08 07:39  道生一_三生万物  阅读(252)  评论(0编辑  收藏  举报
returnTop $(function(){ $('#returnTop').click(function () { $('html,body').animate({ scrollTop: '0px' }, 800); returnfalse; }); });