PHP - Chrome Webdriver - Browserstack \\在我的yml中提供的设置自定义HTTP浏览器标题的正确变量是什么?

问题描述:

我正在尝试使用自定义HTTP UserAgent标题字符串绕过我们网站上的验证码。它可以手动正确工作,并且我正在尝试使其与我的自动化测试一起工作。我使用Codeception框架在PHP中编写它们。正如你可以在下面看到的,我尝试在我的配置文件yml中添加变量以用于browserstack-sierra-safari。 “标题”“用户代理”。我已经尝试将这个代码添加到win7-chrome中,以及在env中。我也尝试了可变的browserstack.useragent和browserstack.user-agent。我的配置文件如下。PHP - Chrome Webdriver - Browserstack \在我的yml中提供的设置自定义HTTP浏览器标题的正确变量是什么?

CLASS_NAME:AcceptanceTester

modules: 
     enabled: 
     - WebDriver 
     - Helper\Acceptance 
     - Helper\CaptchaSolver 
     - Asserts 

     config: 
     WebDriver: 
      url: '**********************' 
      browser: chrome 



    env: 
     prod: 
      modules: 
      config: 
       WebDriver: 
        url: '**********************' 
     test: 
      modules: 
      config: 
       WebDriver: 
        url: '************************' 

     dev: 
      modules: 
      config: 
       WebDriver: 
        url: '********************' 
     browserstack-win7-chrome: 
      modules: 
       config: 
       WebDriver: 
        host: '**************************' 
        port: 80 
        browser: chrome 
        capabilities: 
        browserstack.user: 'a******' 
        browserstack.key: '******************' 
        browserstack.console: 'verbose' 
        browserstack.idleTimeout: 300 
        acceptSslCerts: true 
        os: Windows 
        os_version: 7 
        browserstack.local: true 
        browserstack.debug: true 

     browserstack-sierra-safari: 
      modules: 
      config: 
       WebDriver: 
        host: '******************@hub.browserstack.com' 
        port: 80 
        browser: edge 
        capabilities: 
        os: Windows 
        os_version: 7 
        browserstack.local: true 
        browserstack.debug: true 
        browserstack.acceptSslCerts: true 


     headers: 

Accept:'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' 
      Accept-Language: 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3' 
      User-Agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64)' 

AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36' 
     browserstack-win10-edge: 
      modules: 
       config: 
       WebDriver: 
        host: '****************@hub.browserstack.com' 
        port: 80 
        browser: Edge 
        capabilities: 
        os: Windows 
        os_version: 10 
        browserstack.local: true 
        browserstack.debug: true 

有没有人成功发送的HTTP标头通过browserstack在自动化测试?如果是这样,使用了什么变量?

理想情况下,我会建议您在实例化浏览器时重写useragent。

对于例如,如果您使用的是Chrome和测试是在Java中实现,下面的代码应该有所帮助:

ChromeOptions options = new ChromeOptions(); 
options.addArguments("--user-agent=Mozilla/5.0 (Linux; Android 6.0; HTC One M9 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36"); 
driver = new ChromeDriver(options); 
类似的路线

,而在browserstack实现它,你可能会使用以下行的代码您电话的webdriver

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("--user-agent=Mozilla/5.0 (Linux; Android 6.0; HTC One M9 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36"); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
driver = new RemoteWebDriver(new URL(“https://" + <BROWSERSTACK_USERNAME> + ":" + <BROWSERSTACK_KEY> + "@hub-cloud.browserstack.com/wd/hub”), capabilities); 

不知道Browserstack有一个叫做browserstack.useragent或browserstack.useragent

任何能力