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()
  • 相关阅读:
    java编译错误No enclosing instance of type TestFrame is accessible. Must qualify the allocation with an enclosing instance of type TestFrame (e.g. x.new A(
    java 2中创建线程方法
    动态规划基本思想
    关于eclipse编译一个工程多个main函数
    java Gui初识
    Eclipse中java项目的打包
    java 播放声音
    把资源文件夹导入到eclipse中
    Java建立JProgressBar
    How to grant permissions to a custom assembly that is referenced in a report in Reporting Services
  • 原文地址:https://www.cnblogs.com/wanghuijie1/p/11988472.html
Copyright © 2011-2022 走看看