我如何获取正在使用的浏览器版本?
>>> from selenium import webdriver >>> driver = webdriver.Firefox() >>> print version <-- how to do this? Firefox 12.0
evrscar21#
这个答案让我走上了正确的道路,但它是特定于Python的,而且主题更广泛。所以,我为Java添加了一个答案,这有点棘手。现在我使用的是Selence2.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);
y4ekin9u2#
capabilities属性是一个字典,其中包含有关浏览器本身的信息,因此应该是这样的:
capabilities
print(driver.capabilities['version'])
ggazkfy83#
如果您使用的是Chrome,则可以执行以下操作:
driver.capabilities['version']
如果您使用的是Firefox:
driver.capabilities['browserVersion']
7xzttuei4#
如果driver.capabilities['version']不适合您,请检查功能。版本号在那里,但它可能在不同的密钥下。例如,当我尝试使用version密钥访问版本号时,在Windows 10上遇到密钥错误。要检查功能,请执行以下操作:
version
print driver.capabilities
对我来说,这可以在Chrome/Linux上运行
这可以在Chrome/Windows 10上运行
ogsagwnx5#
虽然这可能不能很好地回答上面的问题,但对于那些根据从不同浏览器(如Firefox和Chrome)收到的不同行为来编写测试代码的人来说,这仍然是有用的。当我偶然发现这个帖子的时候,我正在寻找这个帖子,所以我想我应该把它加进去,以防它能帮助其他人。在Python上,如果您只是在寻找您正在测试的浏览器(即Firefox、Chrome等),那么您可以使用...
driver.name
..。在IF语句中。这假设您已经为您正在测试的Web浏览器(如Firefox、Chrome、IE等)分配了驱动程序。然而,如果你的任务是测试同一浏览器的多个版本,你会想要更多的driver.version。希望这能帮到什么人。当我发现这个帖子时,我正在寻找这个解决方案,所以我想我应该添加它,以防其他人需要它。
a5g8bdjr6#
您可以通过访问返回dictionary的Capability对象来提取GeckoDriver发起的firefox会话的浏览器版本,您可以使用以下解决方案:
from selenium import webdriver from selenium.webdriver.firefox.options import Options options = Options() options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe' driver = webdriver.Firefox(firefox_options=options, executable_path=r'C:\WebDrivers\geckodriver.exe') my_dict = driver.capabilities print("Mozilla Firefox browser version is: " + str(my_dict['browserVersion'])) driver.quit()
控制台输出:
Mozilla Firefox browser version is: 77.0.1
同样,您可以从字典中提取所有属性,如下所示:
from selenium import webdriver from selenium.webdriver.firefox.options import Options options = Options() options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe' driver = webdriver.Firefox(firefox_options=options, executable_path=r'C:\WebDrivers\geckodriver.exe') my_dict = driver.capabilities for key,val in my_dict.items(): print (key, "=>", val) driver.quit()
acceptInsecureCerts => True browserName => firefox browserVersion => 77.0.1 moz:accessibilityChecks => False moz:buildID => 20200602222727 moz:geckodriverVersion => 0.26.0 moz:headless => False moz:processID => 12668 moz:profile => C:\Users\Soma Bhattacharjee\AppData\Local\Temp\rust_mozprofileFc1B08 moz:shutdownTimeout => 60000 moz:useNonSpecCompliantPointerOrigin => False moz:webdriverClick => True pageLoadStrategy => normal platformName => windows platformVersion => 10.0 rotatable => False setWindowRect => True strictFileInteractability => False timeouts => {'implicit': 0, 'pageLoad': 300000, 'script': 30000} unhandledPromptBehavior => dismiss and notify
h9a6wy2h7#
如果要 Package 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(); } }
只是发帖,因为这是我遇到的一个问题。
icnyk63a8#
我只是为想要打印所有功能的Python用户回答这个问题,因为我在不知不觉中搜索到了它。下面的命令有效。print driver.capabilities
gfttwv5a9#
在C#中,我使用了
ICapabilities capabilities = ((RemoteWebDriver)driver).capabilities; capabilities.GetCapability("browserName"); capabilities.GetCapability("browserVersion");
它运行得很好
9条答案
按热度按时间evrscar21#
这个答案让我走上了正确的道路,但它是特定于Python的,而且主题更广泛。所以,我为Java添加了一个答案,这有点棘手。现在我使用的是Selence2.25.0。
y4ekin9u2#
capabilities
属性是一个字典,其中包含有关浏览器本身的信息,因此应该是这样的:ggazkfy83#
如果您使用的是Chrome,则可以执行以下操作:
如果您使用的是Firefox:
7xzttuei4#
如果
driver.capabilities['version']
不适合您,请检查功能。版本号在那里,但它可能在不同的密钥下。例如,当我尝试使用version
密钥访问版本号时,在Windows 10上遇到密钥错误。要检查功能,请执行以下操作:
对我来说,这可以在Chrome/Linux上运行
这可以在Chrome/Windows 10上运行
ogsagwnx5#
虽然这可能不能很好地回答上面的问题,但对于那些根据从不同浏览器(如Firefox和Chrome)收到的不同行为来编写测试代码的人来说,这仍然是有用的。当我偶然发现这个帖子的时候,我正在寻找这个帖子,所以我想我应该把它加进去,以防它能帮助其他人。
在Python上,如果您只是在寻找您正在测试的浏览器(即Firefox、Chrome等),那么您可以使用...
..。在IF语句中。这假设您已经为您正在测试的Web浏览器(如Firefox、Chrome、IE等)分配了驱动程序。然而,如果你的任务是测试同一浏览器的多个版本,你会想要更多的driver.version。希望这能帮到什么人。当我发现这个帖子时,我正在寻找这个解决方案,所以我想我应该添加它,以防其他人需要它。
a5g8bdjr6#
您可以通过访问返回dictionary的Capability对象来提取GeckoDriver发起的firefox会话的浏览器版本,您可以使用以下解决方案:
控制台输出:
提取所有能力
同样,您可以从字典中提取所有属性,如下所示:
控制台输出:
h9a6wy2h7#
如果要 Package WebDriver以使其为EventFiring,则必须执行定制的EventFiringWebDriver实现。
只是发帖,因为这是我遇到的一个问题。
icnyk63a8#
我只是为想要打印所有功能的Python用户回答这个问题,因为我在不知不觉中搜索到了它。下面的命令有效。
print driver.capabilities
gfttwv5a9#
在C#中,我使用了
它运行得很好