zoukankan      html  css  js  c++  java
  • 《SeleniumBasic 3.141.0.0

    Selenium技术在一个浏览器中只能操作访问一个网页,很多情况下还需要在新窗口中打开其他网页,本帖借助执行JavaScript脚本的方式打开新的网页,然后利用SwithTo在各个窗口句柄里切换。

    IWebDriver对象的WindowHandles是一个字符串数组,存储的是每个网页的句柄(句柄是一个字符串,不是数字)。

    下面的程序,一开始打开百度,然后连续新建3个窗口,打开新浪、京东、淘宝。

        WD.New_ChromeDriver Service:=Service, Options:=Options
        Dim Utility As SeleniumBasic.Utility
        Dim windows() As String
        Dim goal As String
        Set Utility = New SeleniumBasic.Utility
        WD.url = "https://www.baidu.com/"
        Utility.Sleep 1000
        WD.ExecuteScript "window.open('https://www.sina.com.cn/')"
        Utility.Sleep 1000
        WD.ExecuteScript "window.open('https://www.jd.com/')"
        Utility.Sleep 1000
        WD.ExecuteScript "window.open('https://www.taobao.com/')"
        Utility.Sleep 1000
        windows = WD.WindowHandles
        For i = 0 To UBound(windows)
            WD.SwitchTo.Window windows(i)
            Debug.Print WD.url, WD.Title
            If WD.url Like "*jd*" Then
                goal = windows(i)
            End If
            Utility.Sleep 1000
        Next i
        WD.SwitchTo.Window goal
        Utility.Sleep 1000
        WD.Close '关闭京东
        Utility.Sleep 1000
        Debug.Print UBound(WD.WindowHandles) + 1 '剩下多少个窗口

    可以看出,就连访问每个网页的标题等简单信息,也必须切换过去才能访问。程序执行到最后,使用Close方法关闭了京东。

     如果浏览器中把最后一个网页也给Close了,那么此时相当于Quit方法,浏览器也就退出了。

  • 相关阅读:
    git线上操作
    IDEA快捷方式
    Java 四种线程池
    java 获取当前天之后或之前7天日期
    如何理解AWS 网络,如何创建一个多层安全网络架构
    申请 Let's Encrypt 通配符 HTTPS 证书
    GCE 部署 ELK 7.1可视化分析 nginx
    使用 bash 脚本把 AWS EC2 数据备份到 S3
    使用 bash 脚本把 GCE 的数据备份到 GCS
    nginx 配置 https 并强制跳转(lnmp一键安装包)
  • 原文地址:https://www.cnblogs.com/ryueifu-VBA/p/13763838.html
Copyright © 2011-2022 走看看