zoukankan      html  css  js  c++  java
  • Selenium3+python3自动化(十四)--alertsconfirmprompt

    前言

    不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。

    alertsconfirmprompt弹出框操作主要方法有:

    text:获取文本值

    accept():点击“确认”

    dismiss():点击“取消”或者叉掉对话框

    send_keys():输入文本值--仅限于prompt,在alert和confirm上没有输入框

    一、认识alertsconfirmprompt

    1.如下图,从上到下依次为alertsconfirmprompt,先认清楚长什么样子,以后遇到了就知道如何操作了

     

     

    2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后使用浏览器打开)

    <html>  
    
    <head>  
    
       <title>Alert</title>  
    
        </head>  
    
    <body>  
    
    <input id = "alert" value = "alert" type = "button" onclick = "alert('很高兴见到你');"/>  
    
    <input id = "confirm" value = "confirm" type = "button" onclick = "confirm('你想学习html吗?');"/>  
    
    <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入你的爱好:','sleep'); document.write(name) "/>    
    
    </body>   
    
    </html>  
    

     二、alert、confirm、prompt操作

    1.先用switch_to_alert()方法切换到相应的弹出框上

    2.可以用text方法获取弹出的文本信息

    3.accept()点击确认按钮

    4.dismiss()相当于右上角x,取消弹出框

    5.弹框上有输入框的,可以使用send_keys()方法输入文本内容

    (url的路径,直接复制浏览器打开的路径)

    # coding:utf-8
    from selenium import webdriver
    import time
    driver=webdriver.Chrome()
    driver.get("file:///C:/Users/Administrator/Desktop/1.html")
    # driver.find_element_by_id("alert").click()
    # driver.find_element_by_id("confirm").click()
    driver.find_element_by_id("prompt").click()
    time.sleep(3)
    #切换到弹出框上
    r=driver.switch_to.alert
    #打印框中文本内容
    print(r.text)
    time.sleep(2)
    #弹出框中有输入框,可以send_keys,否则报错:User dialog does not have a text box input field
    # r.send_keys("xixi")
    time.sleep(2)
    #点击框中的确认按钮
    # r.accept()
    
    #取消弹出框
    r.dismiss()
    

     三、实战演练

    百度-设置-搜索设置,保存设置,弹出alert窗口

    # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    browser=webdriver.Chrome()
    browser.get("https://www.baidu.com")
    s=browser.find_element_by_id("s-usersetting-top")
    time.sleep(3)
    ActionChains(browser).move_to_element(s).perform()
    browser.find_element_by_link_text("搜索设置").click()
    time.sleep(3)
    #每页50条
    browser.find_element_by_id("nr_3").click()
    time.sleep(2)
    browser.find_element_by_link_text("保存设置").click()
    a=browser.switch_to.alert
    a.accept()
    

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    AGC023C Painting Machines
    LG3834 可持久化线段树1
    又是一天
    ARC103F Distance Sums
    CF1053E Euler tour
    UOJ22 外星人
    洛谷4248 AHOI2013差异 (后缀数组SA+单调栈)
    洛谷2408不同字串个数/SPOJ 694/705 (后缀数组SA)
    CF49E Common ancestor(dp+dp+dp)
    洛谷4051 JSOI2007 字符加密(SA)
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13582886.html
Copyright © 2011-2022 走看看