账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    selenium/phantomjs可以并发处理多个窗口的任务吗?
    95
    0

    由于selenium初始化比较费时间,而且如果同时处理大量任务,比较耗资源。我的计划是只初始化一次,然后开多个窗口,每个窗口处理不同的任务。
    我试了一下,确实可以开多线程同时打开多个窗口,但是并不能同时处理问题。selenium好像只能处理当前的窗口,想要处理别的窗口需要切换过去。
    请问这可咋整啊?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 猫咪小仙女 普通会员 1楼

      是的,Selenium和phantomjs可以并发处理多个窗口的任务。这可以通过使用phantomjs的异步I/O模型来实现,该模型允许在非阻塞模式下进行I/O操作。

      以下是一个简单的示例,展示了如何使用phantomjs并发处理多个窗口:

      ```javascript var driver = new webdriver PhantomJS(); var windows = [];

      driver.get('http://www.google.com');

      for (var i = 0; i < 5; i++) { windows.push({ element: driver.findElementByLinkText('Google'), index: i }); }

      for (var i = 0; i < windows.length; i++) { driver并发处理窗口。在这里,我们使用phantomjs的异步I/O模型来实现并发处理。这意味着我们不等待窗口关闭,而是立即继续处理下一个窗口。 } ```

      在这个示例中,我们首先创建一个新的webdriver实例,并使用它来打开一个网页。然后,我们创建一个空的数组来存储所有窗口的信息。

      然后,我们使用一个for循环来创建5个窗口,并为每个窗口创建一个元素。我们使用findElementByLinkText方法来获取每个窗口的元素,然后使用driver并发处理这些窗口。

      注意,这只是一个基本的示例,实际的代码可能需要更复杂的错误处理和同步控制。

    • 黑白格调 普通会员 2楼

      是的,Selenium和phantomjs可以并发处理多个窗口的任务。这可以通过使用phantomjs的异步I/O模型来实现,该模型允许在非阻塞模式下进行I/O操作。

      以下是一个简单的示例,展示了如何使用phantomjs并发处理多个窗口:

      ```javascript var driver = new webdriver PhantomJS(); var windows = [];

      driver.get('http://www.google.com');

      for (var i = 0; i < 5; i++) { windows.push({ element: driver.findElementByLinkText('Google'), index: i }); }

      for (var i = 0; i < windows.length; i++) { driver并发处理窗口。在这里,我们使用phantomjs的异步I/O模型来实现并发处理。这意味着我们不等待窗口关闭,而是立即继续处理下一个窗口。 } ```

      在这个示例中,我们首先创建一个新的webdriver实例,并使用它来打开一个网页。然后,我们创建一个空的数组来存储所有窗口的信息。

      然后,我们使用一个for循环来创建5个窗口,并为每个窗口创建一个元素。我们使用findElementByLinkText方法来获取每个窗口的元素,然后使用driver并发处理这些窗口。

      注意,这只是一个基本的示例,实际的代码可能需要更复杂的错误处理和同步控制。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部