• Selenium 3----警告框处理+下拉框选择


    警告框处理

    在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作。

    • text:返回 alert/confirm/prompt 中的文字信息。

    • accept():接受现有警告框。

    • dismiss():解散现有警告框。

    • send_keys(keysToSend):发送文本至警告框。keysToSend:将文本发送至警告框。

    如下,百度搜索设置弹出的窗口是不能通过前端工具对其进行定位的,这个时候就可以通过switch_to_alert()方法接受这个弹窗。 

    from selenium import webdriver
    # 引入 ActionChains 类
    from selenium.webdriver.common.action_chains import ActionChains #导入提供鼠标操作的 ActionChains 类,也可from selenium.webdriver import ActionChains
    
    import time
    
    driver = webdriver.Chrome()
    #设置隐式等待时间为10秒
    driver.implicitly_wait(10)
    driver.get('https://www.baidu.com')
    #鼠标悬停至“设置”链接
    link = driver.find_element_by_link_text('设置')
    ActionChains(driver).move_to_element(link).perform()
    
    #打开搜索设置
    driver.find_element_by_link_text('搜索设置').click()
    
    #保存设置
    driver.find_element_by_class_name("prefpanelgo").click()
    time.sleep(2)
    
    #接受警告框
    driver.switch_to.alert.accept() # switch_to_alert()方法获取当前页面上的警告框,并使用accept()方法接受警告框。
    
    driver.quit()

    下拉框选择

    WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下:

    Select类用于定位select标签。

    select_by_value() 方法用于定位下接选项中的value值。

    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    from time import sleep
    
    driver = webdriver.Chrome()
    #设置隐式等待时间为10秒
    driver.implicitly_wait(10)
    driver.get('https://www.baidu.com')
    
    #鼠标悬停至“设置”链接
    driver.find_element_by_link_text('设置').click()
    sleep(1)
    
    #打开搜索设置
    driver.find_element_by_link_text("搜索设置").click()
    sleep(2)
    
    #搜索结果显示条数
    sel = driver.find_element_by_xpath("//select[@id='nr']")
    Select(sel).select_by_value('50')  #显示50条 Select类用于定位select标签,select_by_value() 方法用于定位下接选项中的value值。
    
    driver.quit()
  • 相关阅读:
    Mysql 从库的备份中恢复一张表
    my.cnf 配置文件参数解释
    利用mvn deploy命令上传包(转)
    IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered
    idea启动java Maven项目,出现" java: 程序包xxxx不存在"
    org/apache/poi/POIXMLTypeLoader或者java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK
    elasticsearch,kibana,logstash.下载
    idea显示 RunDashboard ,多个启动项时列表显示
    写for循环快捷生成方式
    Could not transfer artifact xxx from/to xxx解决方案
  • 原文地址:https://www.cnblogs.com/nfgg/p/10600092.html
Copyright © 2020-2023  润新知