如何在一个chromedriver实例中运行多个实例/标签?

时间:2018-03-14 06:32:10

标签: python-3.x selenium-webdriver automated-tests google-chrome-devtools selenium-chromedriver

目标:
打开镀铬驱动器
给定已知长度url数组的列表,在其自己的选项卡中打开每个URL并单击计数器。 在urls数组列表中,最后一个url具有转到页面并检查最终计数的功能。

这是为了测试websockets,这就是我想在单个实例中测试它的原因。

目前的解决方案:
每次都有一个新实例打开子进程,但这是资源紧张。 尝试通过不打开另一个实例而是在同一个实例中工作来降低此资源的使用量。

目前的解决方案: 占用中等时间和大部分资源。

               -> open driver -> go to page -> click counter 
               -> open driver -> go to page -> click counter 
get urls[5] -> -> open driver -> go to page -> click counter 
               -> open driver -> go to page -> click counter 
               -> open driver -> go to page -> click counter 

错误的解决方案:耗时最长但资源使用最少

open driver -> go to page -> click counter -> open tab -> go to page -> click counter -> 
....

通缉解决方案:(理论上)如果与当前解决方案不同,应该更快一些,但是中等资源使用。 (由于少了一个chromedriver实例打开并且所有标签同时处理,因此使用和时间减少。

                              -> open tab -> go to page -> click counter 
                              -> open tab -> go to page -> click counter 
open driver -> get urls[5] -> -> open tab -> go to page -> click counter 
                              -> open tab -> go to page -> click counter 
                              -> open tab -> go to page -> click counter 

到目前为止,我已经尝试使用chromedp在golang中实现这一点,chromedp具有难以阅读的文档,并且库非常不稳定。 我尝试的另一种方法是使用chromedriver的python,它工作得非常好,但问题是尽可能多地节省资源。

感谢大家为正确的方向提供帮助!

0 个答案:

没有答案