簡體   English   中英

webdriver使用瀏覽器版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM