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()
  • 相关阅读:
    期末作业验收
    SDN第五次上机作业
    个人作业——软件工程实践总结作业
    SDN第四次作业
    SDN第四次上机作业
    SDN第三次作业
    SDN第三次上机作业
    SDN第二次上机作业
    SDN第二次作业
    个人作业——软件产品案例分析
  • 原文地址:https://www.cnblogs.com/wanghuijie1/p/11988472.html
Copyright © 2011-2022 走看看