zoukankan      html  css  js  c++  java
  • python3+selenium入门12-警告框处理

    在WebDriver中要处理JS生成的alert、confirm以及prompt,需要使用到switch_to_alert()定位到alert/confirm/prompt,然后再使用text、accept()、dissmiss()、send_keys()等方法进行操作。

    text:获得alert/confirm/prompt中的文本信息

    accept():接受警告框

    dissmiss():关闭警告框

    send_keys():发送文本信息到警告框

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import  Keys
    dr = webdriver.Chrome()
    dr.maximize_window()
    dr.implicitly_wait(10)
    dr.get('https://www.baidu.com')
    
    sz = dr.find_element_by_link_text('设置')#鼠标悬浮在设置按钮上
    ActionChains(dr).move_to_element(sz).perform()
    
    dr.find_element_by_link_text('搜索设置').click()
    sst = dr.find_element_by_class_name('prefpanelgo')#保存设置按钮
    sst.send_keys(Keys.ENTER)
    
    dr.switch_to_alert().send_keys()
    dr.close()

    代码是在百度首页,悬停在设置按钮上,然后打开搜索设置,点击保存按钮后,接受弹出的警告框。

    用Chrome自带的开发者工具的时候,直接用定位的按钮去点设置下的搜索设置,下拉菜单会出不来,可以先用鼠标点到下拉菜单中的搜索设置,然后再用定位按钮的快捷键:Ctrl+Shift+C去定位

    在点击保存设置按钮的时候,直接使用click()会报错,一种像上面代码,通过键盘的Enter按键来代替。另一种就是time.sleep()几秒,然后再click()。好像是有个透明的div要加载的原因。

    switch_to_alert(),PyCharm提示这不是最新的方法,最新的是switch_to.alert(),不过最新的貌似用了没反应。

  • 相关阅读:
    5.1重磅活动:区块链免费送书
    Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
    Linux负载均衡利器(LVS)
    豌豆荚Redis集群方案:Codis
    Spring Boot Redis Cluster实战
    高性能代理缓存服务器—Squid
    Facebook分布式框架—Thrift介绍。
    Java 高级面试知识点汇总!
    (4)设计模式-建造者模式
    (3)设计模式-单例模式
  • 原文地址:https://www.cnblogs.com/myal/p/9389249.html
Copyright © 2011-2022 走看看