何时何地使用By类的FindElement方法
本文关键字:FindElement 方法 类的 By 何时何地 | 更新日期: 2023-09-27 18:14:30
我对Selenium架构有基本的了解,其中Search Context是由Web Driver接口实现的主接口,由各种浏览器驱动类扩展。通常,我们对selenium项目遵循POM,并通过by类定义每个对象-
By addButton=By.Id("asdf");
但刚刚意识到我们甚至可以做-
addButton.FindElement(By.XPath("ABC").
但是这不会返回像driver.FindElement(addButton)
什么时候使用上面的语句?
下面使用的术语来自java绑定,但它也适用于c#绑定:
<标题>第一h1> special是对的,Selenium中没有定义"By. findelement (By)"。尽管如此,还是定义了"By.findElement(SearchContext)",我将在下面解释:SearchContext与By
在Selenium中,您有一个称为SearchContext
的接口,然后您有By
类。
SearchContext
可以是WebElement
或WebDriver
现在您有两个选项来查找元素(使用伪代码):
1) SearchContext.findElement(By...)
或
2) By.findElement(SearchContext...)
都做同样的事情!
假设您有一个驱动程序和By变量,如下所示:
WebDriver driver = new FirefoxDriver();
By addButtonLocator = By.id("asdf");
现在你可以通过两种方式找到你的元素:
1) driver.findElement(addButtonLocator);
或
2) addButtonLocator.findElement(driver);
!它们都做同样的事情,只是"读取"这些表达式的另一种方式,像这样:
1) "take the driver and search for an element using this By-statement"
或
2) "take the By-statement and search for an element that fits this statement within driver"
如前所述,如果您使用已经标识的元素,则可以使用较小的作用域,而不是驱动程序。
标题>