zoukankan      html  css  js  c++  java
  • selenium webdriver——多表单切换与多窗口切换

    多表单切换

    >>在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe

     表单内嵌页面上的元素无法直接定位。这时就需要通过suitch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面

     中。

     1 #Author:xiaoxiao
     2 from selenium import webdriver
     3 
     4 def setUp(self):
     5     # 打开浏览器
     6     self.driver = webdriver.Firefox()
     7     self.driver.implicitly_wait(10)
     8     self.driver.get("http://photo.163.com")
     9     # 找到登录模块对应的iframe
    10     self.driver.switch_to.frame(self.driver.find_element_by_xpath("//div[@id='J-loginMod']//iframe"))
    11     self.driver.switch_to.frame("x-URS-iframe")
    12     # 找到账号输入框并输入账号
    13     userinput = self.driver.find_element_by_name("email")
    14     userinput.clear()
    15     userinput.send_keys("yeyll0630")
    16     # 找到密码输入框并输入密码
    17     pwinput = self.driver.find_element_by_name("password")
    18     pwinput.clear()
    19     pwinput.send_keys("abc123")
    20     # 找到登录按钮并点击
    21     loginbutton = self.driver.find_element_by_id("dologin")
    22     loginbutton.click()
    23     # 切换到主页面
    24     self.driver.switch_to.default_content()

     

    多窗口切换

    >>在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了

     switch_to.window()方法,可以实现不同的窗口之间的切换。

     1 from selenium import webdriver
     2 
     3 def setUp():
     4     # 打开浏览器
     5     driver = webdriver.Firefox()
     6     driver.implicitly_wait(10)
     7     driver.get("http://photo.163.com")
     8     # 找到了解更多按钮并点击
     9     knowbutton = driver.find_element_by_link_text("了解更多")
    10     knowbutton.click()
    11     # 获取窗口句柄
    12     windowhanle = driver.current_window_handle  #当前窗口句柄
    13     windowhanles = driver.window_handles      #所有窗口句柄
    14     for handle in windowhanles:           #循环切换至新打开窗口
    15         if handle != windowhanle:
    16             driver.switch_to.window(handle)
    17     # 获取iphone按钮并点击
    18     iphonebutton = driver.find_element_by_id("J-iphone")
    19     iphonebutton.click()
  • 相关阅读:
    微信公众号 发送客服消息
    juqery 点击谁获取他的值,赋给input标签
    微信执行退出页面,直接回到微信对话窗口
    微信jssdk上传图片,一张一张的上传 和 一次性传好几张
    juqery 判断所有input 不能为空 判断只能为数字 判断身份证号:18位和15位 判断是否银行卡号
    php foreach
    现在越来越喜欢用ajax传值了,这样能让网站的体验性很好,今天就总结了一下常用的
    有时候不用explode截取字符串了,可以用用substr()
    ztree 文件夹类型的 树状图
    POJ 1065 Wooden Sticks
  • 原文地址:https://www.cnblogs.com/airener/p/5952021.html
Copyright © 2011-2022 走看看