• 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()

    难点分析:


     

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

    学习总结:


     

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

  • 相关阅读:
    将01字符串转换成数字的办法
    Codeforces Round #180 (Div. 2) AB
    CPU制作过程『转』
    向VECTOR的头部添加元素
    母版页中js操作问题
    操作粘贴板
    XML和关系数据使用XML和数据集类
    XML和关系数据用XML加载数据集
    XPath和XSL转换向XML应用XSL转换
    XML和关系数据从XSD架构创建数据集映射
  • 原文地址:https://www.cnblogs.com/wuzhiming/p/11228584.html
Copyright © 2020-2023  润新知