admin管理员组文章数量:1417070
Using the Browserstack SDK i want to run Java Selenium Tests on Browsers : Chrome, Edge and Safari in Browserstack cloud ; however i need to set Browser specific capabilities :
For example,
ChromeOptions args :-
--enable-extension-activity-log-testing
--enable-unsafe-extension-debugging
--trusted-download-sources
--start-maximized
--ignore-certificate-errors
--disable-popup-blocking
--incognito
--enable-download-warning-improvements
--window-size=1920,900
EdgeOptions args :-
--start-maximized
--headless=new
This is the Browserstack SDK YAML configuration available capabilities file : Browserstack SDK capabilities and configuration YAML gist :
"In case both the browserstack.yml file and the test script define capabilities, which ones are prioritized? If you have capabilities declared in both the browserstack.yml file and in test scripts, the SDK merges these capabilities. However, if you have similar capabilities mentioned in both these locations, the capabilities in the browserstack.yml file take precedence."
This is how the RemoteWebDriver is configured in the browserstack SDK Sample project :
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
MutableCapabilities capabilities = new MutableCapabilities();
HashMap<String, String> bstackOptions = new HashMap<>();
bstackOptions.put("source", "selenide:sample-master:v1.2");
capabilities.setCapability("bstack:options", bstackOptions);
driver = new RemoteWebDriver(new URL(String.format("https://%s:%s@hub-
cloud.browserstack/wd/hub", userName, accessKey)), capabilities);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
WebDriverRunner.setWebDriver(driver);
}
This is the Browserstack Sample project YAML file:
I understand i could do something like the following for the chrome options :
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
MutableCapabilities capabilities = new MutableCapabilities();
HashMap<String, String> bstackOptions = new HashMap<>();
bstackOptions.put("source", "selenide:sample-master:v1.2");
capabilities.setCapability("bstack:options", bstackOptions);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("window-size=1400,800");
options.addArguments("disable-gpu");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new
URL(String.format("https://%s:%s@hub-
cloud.browserstack/wd/hub", userName, accessKey)),
capabilities);
}
(a) But would the capabilities be merged to the Chrome capabilities existing in the browserstack SDK YAML file (and it didn't work )
(b) Would this change break the other browserstack Edge and Safari sessions tied to the RemoteWebDriver
*Note this is a similar question to this question which didn't seem to answer the question: Setting language for Remotewebdriver - BrowserStack endpoint
Using the Browserstack SDK i want to run Java Selenium Tests on Browsers : Chrome, Edge and Safari in Browserstack cloud ; however i need to set Browser specific capabilities :
For example,
ChromeOptions args :-
--enable-extension-activity-log-testing
--enable-unsafe-extension-debugging
--trusted-download-sources
--start-maximized
--ignore-certificate-errors
--disable-popup-blocking
--incognito
--enable-download-warning-improvements
--window-size=1920,900
EdgeOptions args :-
--start-maximized
--headless=new
This is the Browserstack SDK YAML configuration available capabilities file : Browserstack SDK capabilities and configuration YAML gist :
https://gist.github/prateeksabs/0532c79795463d5806234a320880d911
https://www.browserstack/docs/automate/selenium/sdk-faqs/generic/capability-priority
"In case both the browserstack.yml file and the test script define capabilities, which ones are prioritized? If you have capabilities declared in both the browserstack.yml file and in test scripts, the SDK merges these capabilities. However, if you have similar capabilities mentioned in both these locations, the capabilities in the browserstack.yml file take precedence."
This is how the RemoteWebDriver is configured in the browserstack SDK Sample project :
https://www.browserstack/docs/automate/selenium/getting-started/java/selenide
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
MutableCapabilities capabilities = new MutableCapabilities();
HashMap<String, String> bstackOptions = new HashMap<>();
bstackOptions.put("source", "selenide:sample-master:v1.2");
capabilities.setCapability("bstack:options", bstackOptions);
driver = new RemoteWebDriver(new URL(String.format("https://%s:%s@hub-
cloud.browserstack/wd/hub", userName, accessKey)), capabilities);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
WebDriverRunner.setWebDriver(driver);
}
This is the Browserstack Sample project YAML file:
https://gist.github/prateeksabs/0532c79795463d5806234a320880d911
I understand i could do something like the following for the chrome options :
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
MutableCapabilities capabilities = new MutableCapabilities();
HashMap<String, String> bstackOptions = new HashMap<>();
bstackOptions.put("source", "selenide:sample-master:v1.2");
capabilities.setCapability("bstack:options", bstackOptions);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("window-size=1400,800");
options.addArguments("disable-gpu");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new
URL(String.format("https://%s:%s@hub-
cloud.browserstack/wd/hub", userName, accessKey)),
capabilities);
}
(a) But would the capabilities be merged to the Chrome capabilities existing in the browserstack SDK YAML file (and it didn't work )
(b) Would this change break the other browserstack Edge and Safari sessions tied to the RemoteWebDriver
*Note this is a similar question to this question which didn't seem to answer the question: Setting language for Remotewebdriver - BrowserStack endpoint
Share Improve this question edited Feb 5 at 3:10 Krishnan Mahadevan 14.7k6 gold badges38 silver badges70 bronze badges asked Feb 2 at 20:43 MarkMark 231 silver badge6 bronze badges1 Answer
Reset to default 0The capabilities defined as part of the browserstack.yml file will take precedence when executing with the BrowserStack's SDK.
We can define the browser specific arguments in the yml file itself for each browsers. For example,
platforms:
- os: OS X
osVersion: Big Sur
browserName: Chrome
browserVersion: latest
chromeOptions:
args:
- incognito
- --start-maximized
本文标签: javaSetting browser specific capabilities using Browserstack SDKStack Overflow
版权声明:本文标题:java - Setting browser specific capabilities using Browserstack SDK - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745257390a2650183.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论