zoukankan      html  css  js  c++  java
  • 使用异步js解决模态窗口切换的办法

    核心代码

    1. js ="setTimeout(function(){document.getElementsByTagName('Button')[3].click()},100);"
    下面是我的实验过的示例代码:
    实验地址:
    http://pyselenium-po-60b44.coding.io/exapage.html
    1.  1 #-*- coding: utf-8 -*-
       2 __author__ = 'ray'
       3 from selenium import webdriver
       4 import unittest
       5 import time
       6 
       7 class modolwindowdemo(unittest.TestCase):
       8     def setUp(self):
       9         self.driver = webdriver.Firefox()
      10         self.driver.implicitly_wait(30)
      11         self.base_url = "http://pyselenium-d1826.coding.io/exapage.html"
      12         self.verificationErrors = []
      13         self.js = "setTimeout(function(){document.getElementsByTagName('Button')[3].click()},100);"
      14 
      15         
      16     def test_demo(self):
      17         driver = self.driver
      18         driver.get(self.base_url)
      19         #获取当前窗口句柄
      20         mainhandle = driver.current_window_handle
      21         print mainhandle
      22         #使用下面的webdriver打开模态窗口,无法进行切换
      23         #driver.find_element_by_xpath("//button[2]").click()
      24 
      25         #使用js异步进行打开模态窗口
      26         driver.execute_script(self.js)
      27         time.sleep(1)
      28         #获取当前所有句柄
      29         modalhandle = driver.window_handles
      30 
      31         #通过循环切换到模态窗口
      32         print modalhandle
      33         for handle in modalhandle:
      34             if handle != mainhandle:
      35                 driver.switch_to_window(handle)
      36                 print driver.current_window_handle
      37                 driver.find_element_by_xpath("//form//tr[1]/td[2]/input").send_keys("Ray")
      38 
      39         time.sleep(2)
      40     def tearDown(self):
      41         self.driver.quit()
      42         self.assertEqual([], self.verificationErrors)
      43 
      44 if __name__ == "__main__":
      45     unittest.main()
  • 相关阅读:
    Python使用print打印时,展示内容不换行
    二进制、八进制、十进制和十六进制的相互转化(图解)
    IDEA 配置背景颜色(豆沙绿)
    Linux下脚本文件第一行的作用
    IDEA 注释模板配置
    IDE 常用配置
    Python 运算符
    Python 基础
    Chrome 浏览器快捷键
    正则表达式
  • 原文地址:https://www.cnblogs.com/tsbc/p/4273538.html
Copyright © 2011-2022 走看看