我正在尝试使用自定义HTTP UserAgent标头字符串来绕过我们网站上的验证码。它可以手动正常工作,我试图让它与我的自动化测试一起工作。我使用Codeception框架在PHP中编写它们。正如您在下面看到的,我尝试将变量添加到我的配置yml中,用于browserstack-sierra-safari。 "头" "用户代理&#34 ;.我尝试将此代码添加到win7-chrome以及env中。我还尝试了变量browserstack.useragent和browserstack.user-agent。我的配置文件在下面。
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 :(得分:0)
理想情况下,我建议您在实例化浏览器时覆盖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.user-agent的任何功能