Reu*_*tor 2 c# selenium webdriver
我对Selenium架构有基本的了解,其中Search Context是由Web Driver接口实现的主要接口,由各种浏览器驱动程序类扩展.通常,我们遵循POM来完成我们的selenium项目并通过他们的By类定义每个对象 -
By addButton=By.Id("asdf");
Run Code Online (Sandbox Code Playgroud)
但只是意识到我们甚至可以 -
addButton.FindElement(By.XPath("ABC").
Run Code Online (Sandbox Code Playgroud)
但这并没有返回元素之类的 driver.FindElement(addButton)
什么时候使用上述声明?
以下是使用Java绑定中的术语,但它也适用于C#-Binding:
@spcial是正确的,Selenium中没有定义"By.findElement(By)".然而,定义了一个"By.findElement(SearchContext)",我将在下面解释:
在Selenium中,你有一个名为a的接口SearchContext,然后你就拥有了这个By类.
A SearchContext可以是a WebElement或aWebDriver
现在您有两个选项来查找元素(使用伪代码):
1) SearchContext.findElement(By...)
要么
2) By.findElement(SearchContext...)
两者都做同样的事情!
在你的情况下,你有一个驱动程序和By变量,如下所示:
WebDriver driver = new FirefoxDriver();
By addButtonLocator = By.id("asdf");
Run Code Online (Sandbox Code Playgroud)
现在你可以通过两种方式找到你的元素:
1) driver.findElement(addButtonLocator);
要么
2) addButtonLocator.findElement(driver);
再次!两者都做同样的事情,这只是"读取"这些表达式的另一种方式:
1) "take the driver and search for an element using this By-statement"
Run Code Online (Sandbox Code Playgroud)
要么
2) "take the By-statement and search for an element that fits this statement within driver"
Run Code Online (Sandbox Code Playgroud)
如前所述,如果使用已识别的元素,则可以使用较小的范围代替驱动程序.
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |