2017-09-07 5 views
0

사용자 지정 HTTP UserAgent 헤더 문자열을 사용하여 웹 사이트에서 보안 문자 코드를 무시하려고합니다. 그것은 올바르게 수동으로 작동하고, 내 자동화 테스트와 함께 작동하도록 노력하고있어. Codeception 프레임 워크를 사용하여 PHP로 작성합니다. 아래에서 볼 수 있듯이 browserstack-sierra-safari에 대한 설정 yml에 변수를 추가하려고했습니다. "헤더" "사용자 에이전트". 나는이 코드를 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 

사람이 성공적으로 자동화 테스트에 browserstack 통해 HTTP 헤더를 보낸 적이 있습니까? 그렇다면 어떤 변수가 사용 되었습니까?

답변

0

이상적으로는 브라우저를 인스턴스화하는 동안 사용자 에이전트를 덮어 쓰는 것이 좋습니다. 예를 들어

, 당신은 크롬을 사용하고 시험은 코드가 도움이 아래에, 자바로 구현하는 경우 : browserstack에 구현하면서, 비슷한 라인에

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가 browserstack.useragent 또는 browserstack.useragent

라는 어떤 기능이있는 경우 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); 

확실하지 않음