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()
  • 相关阅读:
    .Net 应用中使用dot trace进行性能诊断
    MyBatis批量增删改查操作
    hadoop2.7.2基于centos全然分布式安装
    HDOJ 3666 THE MATRIX PROBLEM 差分约束
    BZOJ1635: [Usaco2007 Jan]Tallest Cow 最高的牛
    BZOJ1089: [SCOI2003]严格n元树
    BZOJ1406: [AHOI2007]密码箱
    BZOJ1270: [BeijingWc2008]雷涛的小猫
    BZOJ1211: [HNOI2004]树的计数
    BZOJ2729: [HNOI2012]排队
  • 原文地址:https://www.cnblogs.com/tsbc/p/4273538.html
Copyright © 2011-2022 走看看