zoukankan      html  css  js  c++  java
  • python-selenium -- 弹出框处理

    弹出框有两种:页面弹出框(可定位元素能操作)、Windows弹出框(不能直接定位)

    一、页面弹出框

      等待弹出框出现之后,定位弹出框,操作其中元素

      如: 

    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.maximize_window()
    #点击百度登录按钮
    driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_login"]').click()
     
    #等待百度登录弹出框中 要出现的元素可见
    ele_id = "TANGRAM__PSP_10__footerULoginBtn"
    param = (By.ID,ele_id)
    #元素可见时,再进行后续操作
    WebDriverWait(driver,10).until(EC.visibility_of_element_located(param))
    
    driver.find_element_by_id(ele_id).click()
    time.sleep(5)
    driver.quit()

    二、Windows弹出框

      使用 driver.switch_to.alert  切换到Windows弹出框

      Alert类提供了一系列操作方法:

      accept() 确定

      dismiss() 取消

      text() 获取弹出框里面的内容

      send_keys(keysToSend) 输入字符串

      如: 

    #1:定位alert弹出框
    #点击页面元素,触发alert弹出框
    driver.find_element_by_xpath('//*[@id="alert"]').click()
    time.sleep(3)
    #等待alert弹出框可见
    WebDriverWait(driver,20).until(EC.alert_is_present())
    
    #从html页面切换到alert弹框
    alert = driver.switch_to.alert
    #获取alert的文本内容
    print(alert.text)
    #接受--选择“确定”
    alert.accept()
    
    #2:定位confirm弹出框
    driver.find_element_by_xpath('//*[@id="confirm"]').click()
    time.sleep(3)
    WebDriverWait(driver,20).until(EC.alert_is_present())
    alert =driver.switch_to.alert
    print(alert.text)
    # 接受--选择“取消”
    alert.dismiss()
     
    
    #3:定位prompt弹出框
    driver.find_element_by_id("prompt").click()
    time.sleep(3)
    WebDriverWait(driver,20).until(EC.alert_is_present())
    alert =driver.switch_to.alert
    alert.send_keys("jaja")
    time.sleep(5)
    print(alert.text)
    # alert.dismiss()
    alert.accept()
  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/wanghuijie1/p/11988472.html
Copyright © 2011-2022 走看看