zoukankan      html  css  js  c++  java
  • selenium——iframe切换、alert弹框切换、窗口切换

    1、iframe切换

    切换到对应的iframe标签中可以进行定位

    切换方法:driver.switch_to.frame
    driver.switch_to.frame(名称)
    driver.switch_to.frame(索引)
    driver.switch_to.frame(elements节点)

    driver = webdriver.Chrome()
    
    
    
    driver.get('https://mail.qq.com/')
    
    time.sleep(2)
    
    # 方式一:切换iframe:通过iframe的名字(name属性)进行切换
    driver.switch_to.frame('login_frame')
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()
    
    # 方式二:通过索引去切换iframe标签
    time.sleep(2)
    driver.switch_to.frame(0)
    
    driver.find_element_by_xpath('//div[@id="wxLoginTab"]').click()
    driver.find_element_by_xpath('//p[@id="auto_login"]/a').click()
    
    
    # 方式三:通过element节点去进行切换
    ele_iframe = driver.find_element_by_xpath('//iframe[@id="login_frame"]')
    driver.switch_to.frame(ele_iframe)
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()

    # 方式四:使用显示等待的方式,等待iframe处于可以的状态,然后切换进行
    WebDriverWait(driver, 20, 1).until(
        EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//iframe[@id="login_frame"]'))
    )
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()
    
    #  关于iframe切换回 默认的HTML页面
    driver.switch_to.default_content()
    
    # 切换回父级的iframe中
    driver.switch_to.parent_frame()

    2、alert弹框切换

    # 关于alert弹框的切换
    alert = driver.switch_to.alert
    # 点击确认
    alert.accept()
    # 点击取消
    alert.dismiss()
    # 输入内容
    alert.send_keys("python34567890")

    3、窗口切换

    获取所有窗口的句柄

    ws = driver.window_handles

    print(ws)

    切换窗口的方法(窗口名),-1表示最新打开的窗口,1表示第一个窗口,2,3以此类推
    driver.switch_to.window(ws[-1])

    # 等待新窗口打开
    ws = driver.window_handles
    WebDriverWait(driver,5,0.5).until(EC.new_window_is_opened(ws)

  • 相关阅读:
    一个省一等奖没文件没证书,只能保存一张图呢
    HTML5的新结构标签
    一个最简单的网页是如何构成的
    数据模型层Model
    空控制器空操作
    TP框架
    thinkphp基础
    静态缓存
    smarty函数
    Smarty的使用
  • 原文地址:https://www.cnblogs.com/erchun/p/12906110.html
Copyright © 2011-2022 走看看