![](/img/trans.png)
[英]How to check a webdriver is in line with browser version in Selenium
[英]webdriver working with browser version
我正在嘗試使用webdriver中提供的功能並設置瀏覽器版本。 我的chrome版本是32,但試圖在chrome 30中運行我的測試。
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"/drivers/win/chromedriver.exe");
DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setCapability("version", "30");
WebDriver wd = new ChromeDriver(caps);
System.out.println(((RemoteWebDriver) wd).getCapabilities().getVersion());
當我打印瀏覽器版本時,其打印瀏覽器版本為32,但我將瀏覽器版本設置為30。 我如何以正確的方式使用此功能。
不,你不能。 由於您的測試在使用Chrome 32的計算機上運行,因此您無法將其設置為Chrome 30,因為您沒有使用Chrome 30。
即使驅動程序不支持您請求的功能,也不會拋出錯誤,因此無法創建具有DesiredCapabilities
WebDriver實例。 這就是Selenium的設計方式。
有關DesiredCapabilities
更多信息,請參閱此問題 。 我引用JimEvans的回答:
API指定將所需的功能傳遞到構造函數中。 但是,可能是驅動程序不支持所需功能中請求的功能的情況。 在這種情況下,驅動程序不會拋出任何錯誤,這是故意的。 會話返回一個功能對象,指示會話實際支持的功能。
這就是在這種情況下實際發生的事情。 PhantomJS驅動程序不支持處理警報,返回的功能對象表示盡可能多。 在大多數語言綁定中,此返回的功能對象是只讀的; 在返回的對象可能是讀寫的語言綁定中,修改這些功能對會話沒有實際影響。 在掛起的W3C WebDriver規范中,有一個requiredCapabilities設置,如果服務器無法提供該功能,則會拋出異常,但據我所知,尚未由任何驅動程序實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.