Как я могу использовать версию браузера?
>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
>>> print version <-- how to do this?
Firefox 12.0
Как я могу использовать версию браузера?
>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
>>> print version <-- how to do this?
Firefox 12.0
Свойством capabilities
является словарь, содержащий информацию о самом браузере, поэтому это должно работать:
print driver.capabilities['version']
Этот ответ привел меня по правильному пути, но специфичен для 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);
Хотя это может не совсем ответить на поставленный выше вопрос, это все равно может быть полезно для тех, кто ищет способ кодировать тест, основанный на разных поведении, которое они получают из разных браузеров (то есть Firefox против Chrome). Я искал это в то время, когда я наткнулся на эту тему, поэтому я подумал, что добавлю его, если он может помочь кому-то другому.
На Python, если вы просто ищете браузер, на котором вы тестируете (например, firefox, chrome, т.е. и т.д.), вы можете использовать...
driver.name
... в операторе if. Предполагается, что вы уже назначили драйвер для веб-браузера, на котором вы тестируете (например, Firefox, Chrome, IE и т.д.). Однако, если вам поручено тестировать несколько версий одного и того же браузера, вам нужно что-то большее в driver.version. Надеюсь, это поможет кому-то. Я искал это решение, когда нашел этот поток, поэтому решил, что добавлю его на случай, если кому-то это понадобится.
Если ваша упаковка вашего 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();
}
}
Просто публиковать, потому что это была проблема, с которой я столкнулся.
Просто отвечая на этот вопрос для пользователей Python, которые хотят распечатать все возможности, которые я искал, прежде чем я знал это. Ниже работает команда.
print driver.capabilities
Если вы используете Chrome, вы можете сделать следующее:
driver.capabilities['version']
А если вы используете Firefox:
driver.capabilities['browserVersion']
Если driver.capabilities['version']
не работает для вас, проверьте возможности. Номер версии есть, но он может находиться под другим ключом. Например, я получаю сообщение об ошибке в Windows 10 при попытке доступа к номеру версии с помощью клавиши version
.
Чтобы проверить возможности:
print driver.capabilities
Для меня это работает в Chrome/Linux
driver.capabilities['version']
И это работает в Chrome/Windows 10
driver.capabilities['browserVersion']