2013-08-29 88 views
5

Tôi đang ở trong vùng đất javascript + mocha +.Làm thế nào để thay đổi selenium user agent trong selenium-webdriver nodejs land?

Tôi đã cố gắng thiết lập UserAgent và 'user-agent' như phím trên khả năng:

var webdriver = require('selenium-webdriver'); 
var ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X)'; 

var driver = new webdriver.Builder(). 
    ... 
    withCapabilities({ 'browserName': 'firefox', 
     userAgent: ua, 
     'user-agent': ua, 
    }). 
    build(); 

this answer mà nói để sử dụng một hồ sơ firefox, nhưng điều đó không tiếp xúc. Không có driver.FirefoxProfile cũng không ai tiếp xúc trên toàn cầu cũng không webdriver.FirefoxProfile cũng không driver.profiles, vv

Tôi đã thử Googling và tìm the sourcethe documentation nhưng không có gì là về vấn đề này.

Trả lời

1

Bạn không thể làm điều đó với Firefox, nhưng bạn có thể làm điều đó với Chrome. Nó không có giấy tờ:

var chrome = require('selenium-webdriver/chrome'); 

var opts = new chrome.Options(); 
opts.addArguments(['user-agent="YOUR_USER_AGENT"']); 

var driver = new webdriver.Builder(). 
    withCapabilities(opts.toCapabilities()). 
    build(); 
5

Tôi user agent thành công thay đổi phantom bằng cách sử dụng WD với mã này:

var capabilities = { 
    'browserName': 'phantomjs', 
    'phantomjs.page.settings.userAgent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.11 Safari/537.36' 
}; 
return browser 
    .init(capabilities) 
... 

this liên kết cho thấy làm thế nào để thay đổi user agent firefox, mặc dù mã được cung cấp là cho C#/Ruby.

+0

Tôi chạy vào một vấn đề mà một máy chủ ASP.net sẽ quay trở lại phá vỡ JavaScript với PhantomJS mặc định user-agent, vì vậy tôi phải giả mạo nó vì vậy tôi có được một trang đúng. Xem thêm https://stackoverflow.com/questions/20164753/sys-webforms-pagerequestmanager-is-undefined-error-in-ie11-working-fine-in-ie10 – Luksurious

3

Bạn chỉ cần cài đặt gói firefox-profile. Dưới đây là một đoạn trích:

var webdriver = require('selenium-webdriver'); 
var FirefoxProfile = require('firefox-profile'); 

var myProfile = new FirefoxProfile();   
var capabilities = webdriver.Capabilities.firefox(); 

// here you set the user-agent preference 
myProfile.setPreference('general.useragent.override', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'); 

// attach your newly created profile 
myProfile.encoded(function(encodedProfile) { 
    capabilities.set('firefox_profile', encodedProfile); 

    // start the browser 
    var wd = new webdriver.Builder(). 
     withCapabilities(capabilities). 
     build(); 

    wd.get('http://testingsite.com/'); 
}); 

Dễ dàng peasy!

0

cho chrome bạn có thể làm như thế này:

var driver = new webdriver.Builder() 
.usingServer('http://localhost:4444/wd/hub') 
.withCapabilities({browserName: 'chrome', chromeOptions: {args:['user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"'] } }) 
.build(); 
+1

Vui lòng chỉnh sửa với nhiều thông tin hơn. Các câu trả lời chỉ có mã và "dùng thử" này không được khuyến khích, bởi vì chúng không chứa nội dung có thể tìm kiếm được và không giải thích tại sao một người nào đó nên "thử cái này". Chúng tôi nỗ lực ở đây để trở thành một nguồn lực cho kiến ​​thức. – abarisone