• Selenium2学习(十二)-- alertconfirmprompt


    前言   

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

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

    text:获取文本值

    accept() :点击"确认"

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

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


    一、认识alertconfirmprompt

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

     

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

    <html>  

    <head>  

       <title>Alert</title>  

        </head>  

    <body>  

    <input id = "alert" value = "alert" type = "button" onclick = "alert('您关注了yoyoketang吗?');"/>  

    <input id = "confirm" value = "confirm" type = "button" onclick = "confirm('确定关注微信公众号:yoyoketang?');"/>  

    <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入微信公众号:','yoyoketang'); document.write(name) "/>    

    </body>   

    </html>  


    二、alert操作

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

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

        3.accept()点击确认按钮

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

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

    三、confirm操作

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

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

        3.accept()点击确认按钮

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

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

    四、prompt操作

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

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

        3.accept()点击确认按钮

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

        5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容

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

    五、select遇到的坑

        1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)

        2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点

        3.解决办法:在select操作后,做个click()点击操作

    s = driver.find_element_by_id("nr")

    Select(s).select_by_visible_text("每页显示20条")

    time.sleep(3)

    s.click()



    六、最终代码

    # coding:utf-8

    from selenium import webdriver

    from selenium.webdriver.common.action_chains import ActionChains

    from selenium.webdriver.support.select import Select

    import time

    driver = webdriver.Firefox()

    url = "https://www.baidu.com"

    driver.get(url)

    driver.implicitly_wait(20)

    # 鼠标移动到“设置”按钮

    mouse = driver.find_element_by_link_text("设置")

    ActionChains(driver).move_to_element(mouse).perform()

    driver.find_element_by_link_text("搜索设置").click()

    # 通过text:select_by_visible_text()

    s = driver.find_element_by_id("nr")

    Select(s).select_by_visible_text("每页显示20条")

    time.sleep(3)

    s.click()

    driver.find_element_by_link_text("保存设置").click()

    time.sleep(5)

    # 获取alert弹框

    t = driver.switch_to_alert()

    print t.text

    t.accept()

  • 相关阅读:
    【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接
    socket编程
    2.4.2电子书fb.c文件
    3.1 电子书框架
    文件浏览器及数码相框 -2.3.2-freetype_arm-2
    文件浏览器及数码相框 -2.3.2-freetype_arm-1
    文件浏览器及数码相框 -2.3.1freetype_pc
    文件浏览器及数码相框 -2.2-字符点阵及汉字库
    文件浏览器及数码相框 -2.1-字符编码
    文件浏览器及数码相框-1
  • 原文地址:https://www.cnblogs.com/wanghaihong200/p/8464143.html
Copyright © 2020-2023  润新知