2012-09-23 43 views
21

我將如何獲得正在使用的瀏覽器版本?使用硒webdriver獲取瀏覽器版本

>>> from selenium import webdriver 
>>> driver = webdriver.Firefox() 
>>> print version <-- how to do this? 
    Firefox 12.0 
+0

從Firefox版本48和轉發,你可以看到答案[這裏](https://stackoverflow.com/questions/23887911/how-to-check-firefox-version-when-running-selenium-tests-in-詹金斯/ 47816337#47816337) – ArgiesDario

回答

20

capabilities屬性是一個包含有關瀏覽器的本身信息的字典,所以這應該工作:

print driver.capabilities['version'] 
37

這個答案我走上了正確的道路,但具體到Python和話題更廣闊。所以,我給Java添加了一個更復雜的答案。此時我正在使用硒2.25.0。

//make sure have correct import statements - I had to add these 
import org.openqa.selenium.Capabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 

WebDriver driver = new FirefoxDriver(); 

Capabilities caps = ((RemoteWebDriver) driver).getCapabilities(); 
String browserName = caps.getBrowserName(); 
String browserVersion = caps.getVersion(); 
System.out.println(browserName+" "+browserVersion); 
2

如果你的包裹你的webdriver使其EventFiring你必須做一個自定義的EventFiringWebDriver實現。

import org.openqa.selenium.Capabilities; 
import org.openqa.selenium.HasCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.events.EventFiringWebDriver; 

public class MyEventFiringWebDriver extends EventFiringWebDriver implements HasCapabilities { 

    private RemoteWebDriver driver; 

    public MyEventFiringWebDriver(RemoteWebDriver driver) { 
     super(driver); 
     this.driver = driver; 
    } 

    @Override 
    public Capabilities getCapabilities() { 
     return driver.getCapabilities(); 
    } 

} 

只是發佈,因爲這是我遇到的問題。

2

雖然這不太回答上面的問題,這仍然可能是一個人,其在尋找一種方式來編寫基於他們來自不同的瀏覽器(即火狐VS鉻)收到不同的行爲測試非常有用。當我偶然發現這個帖子的時候,我正在尋找它,所以我想我會添加它以防別人幫助別人。

Python的,如果你只是去尋找你的瀏覽器正在測試(即火狐,Chrome,即等),那麼你可以使用...

driver.name 

..在如果聲明。假設您已將驅動程序分配給您正在測試的網絡瀏覽器(即Firefox,Chrome,IE等)。但是,如果您的任務是測試同一瀏覽器的多個版本,則需要更多的驅動程序到driver.version。希望這可以幫助別人。當我找到這個線程時,我正在尋找這個解決方案,所以我想我會添加它,以防其他人需要它。

相關問題