使用硒启动Web浏览器时,我们必须设置系统属性。
我想知道webdriver.ie.driver
,webdriver.chrome.driver
的含义以及此键值所在的位置
我已在初始化之前设置了路径
System.setProperty("webdriver.ie.driver", "C:\\driver\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
我只想知道Webdriver.ie.driver
的含义?
答案 0 :(得分:3)
硒代码通过 JSON有线协议与InternetExplorerDriver
进行交互,然后InterenteExplorerDriver将进一步与Internet Explorer浏览器进行通信。因此,基本上,IE驱动程序将充当硒代码和IE浏览器之间的桥梁。
System.setProperty
位于您的system class
中。 setProperty
是静态字符串方法,您可以在其中基于键值对存储值。
“ System.setProperty(“propertyName”, “value”)
”就是它的意思。也就是说,它将系统属性“ propertyName
”设置为值“ value
”。
在Selenium中,您使用此方法是因为浏览器没有内置的可执行文件来运行自动化代码,因此您将需要Chrome / IE / Gecko(根据要求)驱动程序服务器来通信您的硒代码到浏览器。
简单来说,要为各个浏览器设置驱动程序的路径,您将需要system.setProperty
。例如。
System.setProperty("webdriver.ie.driver", "Path of your Driver");
WebDriver driver = new InternetExplorerDriver();
driver.get("http://seleniumhq.com");
这将使用Internet Explorer驱动程序在Internet Explorer中启动硒官方站点,该驱动程序的初始化由system.setproperty
方法处理。
这必须是在任何用于初始化驱动程序的测试方法之前,必须在selenium脚本中执行的第一行代码。
答案 1 :(得分:1)
为什么我们在脚本中使用WebDriver driver = new FirefoxDriver()
见下文
以下是基于上图的几点。
-SearchContext是硒中最高级的接口,它由另一个称为WebDriver的接口扩展。
-SearchContext和WebDriver接口的所有抽象方法都在RemoteWebDriver类中实现。
-与浏览器相关的所有类,例如FirefoxDriver,ChromeDriver等,都扩展了RemoteWebdriver类。
什么是WebDriver?
WebDriver是Selenium WebDriver提供的接口。众所周知,Java中的接口是常量和抽象方法(没有任何实现的方法)的集合。 WebDriver界面是每个浏览器特定的实现(例如ChromeDriver,FireFoxDriver)都必须遵循的合同。 WebDriver接口声明了诸如get(),navigate(),close(),sendKeys()等之类的方法,并且特定于浏览器的驱动程序的开发人员实现了这些方法以使这些东西自动化。 以ChromeDriver为例,它是由Chromium团队的人员开发的,Selenium项目的开发人员不必担心这些驱动程序的实现细节。
WebDriver驱动程序=新的FirefoxDriver();
具有类型为WebDriver的引用变量,使我们可以将驱动程序对象分配给不同的浏览器特定的驱动程序。因此,通过将驱动程序对象分配给任何所需的浏览器,可以进行多浏览器测试。
有关更多信息,请检查以下链接:-
WebDriver driver = new FirefoxDriver() – Why we write in Selenium Scripts
在Selenium中,WebDriver是一个界面。
FirefoxDriver是一个类。它实现了WebDriver接口的所有方法。
答案 2 :(得分:1)
当我们使用Java启动用于硒自动化的ie浏览器时,我们编写以下代码行
System.setProperty("webdriver.ie.driver", "C:\\driver\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
现在让我们看看这是更详细的信息:
System.setProperty()
:如链接system.setProperty()中所述。
Java中的System有一个称为props的静态成员变量,其类型为Properties。这是一个由键值对组成的哈希表。当Java启动程序时。启动了JVM实例,该实例具有自己的System.propties()哈希表。
写的时候
System.setProperty("webdriver.ie.driver", "C:\\driver\\IEDriverServer.exe");
我们正在创建一个键值对,其键为webdriver.ie.driver
,值为其
路径。
new InternetExplorerDriver();
:根据chrome driver的硒Java代码
默认构造函数接受services参数。这些服务是我们正在启动的浏览器驱动程序的路径
答案 3 :(得分:0)
ChromeDriver是WebDriver用于控制Chrome的独立可执行文件。 Chromium团队在WebDriver贡献者的帮助下对其进行了维护。如果您不熟悉WebDriver,请执行以下操作: 请按照以下步骤设置测试以与ChromeDriver一起运行:
确保将Chromium / Google Chrome安装在可识别的位置 ChromeDriver希望您将Chrome安装在平台的默认位置。您还可以通过设置特殊功能来强制ChromeDriver使用自定义位置。 在此站点的下载部分下下载适用于您平台的ChromeDriver二进制文件 帮助WebDriver查找下载的ChromeDriver可执行文件 这些步骤中的任何一个都可以解决问题: 在您的PATH环境变量中包含ChromeDriver位置 (仅限Java)通过webdriver.chrome.driver系统属性指定其位置(请参见下面的示例) (仅适用于Python)在实例化webdriver.Chrome时包括ChromeDriver的路径(请参见以下示例) http://chromedriver.chromium.org/getting-started
下面是硒包中的引用,将在其中使用该值。
/**
* System property that defines the location of the chromedriver executable that will be used by
* the {@link #createDefaultService() default service}.
*/
public static final String CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver";