PhantomJS + Selenium,如何在新窗口中打开链接的用户代理?

时间:2015-07-11 11:41:37

标签: selenium phantomjs

我试图点击使用selenium和phantomjs在新标签页(target =" _blank")中打开的链接,但问题是当phantomjs打开链接时,它没有&#39 ; t使用DesiredCapabilities设置为其定义的用户代理。如果链接在当前窗口中打开,一切正常,但只要在新窗口中打开,用户代理就是默认的!

如何全局设置用户代理? (顺便说一句,我使用python)

2 个答案:

答案 0 :(得分:0)

经过一番调查后,我发现问题似乎来自鬼司机。所以我检查了鬼驱动程序github并发现问题是从2013年开始的,并且有一个临时解决方案。我在这里编写解决方案,因为在谷歌搜索中没有github问题的结果(https://github.com/detro/ghostdriver/issues/273):

  

保证链接target =“_ blank”和window.open的解决方案 - 在desiredCapabilities中设置phantomjs.page.customHeaders.User-Agent。在我的情况下(window.open)可能会打开一个带有“about:blank”url的新窗口,然后在handle数组中找到它以激活和冲浪。

因此,虽然不建议在selenium文档中的自定义标头中设置userAgent,但它是目前全局设置userAgent的唯一方法,因此它不会在新窗口中更改。

答案 1 :(得分:-1)

试试这段代码。为我工作。

#!/usr/bin/env python3 import time from gi.repository import Gtk win = Gtk.Window(title='test') text_view = Gtk.TextView() def mark_set(buf, itr, mark): ### mark.get_name() ==> 'selection_bound' | 'insert' | None print('Time: %.2f, Mark Name: %s'%(time.time()%100, mark.get_name())) win.add(text_view) text_view.get_buffer().connect('mark-set', mark_set) win.connect('delete-event', Gtk.main_quit) win.show_all() Gtk.main()