我试图点击使用selenium和phantomjs在新标签页(target =" _blank")中打开的链接,但问题是当phantomjs打开链接时,它没有&#39 ; t使用DesiredCapabilities设置为其定义的用户代理。如果链接在当前窗口中打开,一切正常,但只要在新窗口中打开,用户代理就是默认的!
如何全局设置用户代理? (顺便说一句,我使用python)
答案 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()