使用條款從Java結合的下面,但它對於C# - 結合以及成立:
首先
@spcial是正確的,沒有「By.findElement(通過)「在Selenium中定義。不過有一個「By.findElement(SearchContext)」定義了我下面會解釋:
SearchContext與通過
硒你有叫SearchContext
一個接口,那麼你有By
類。
甲SearchContext
可以是WebElement
或WebDriver
現在有兩個選項找到的元件(使用僞代碼):
1)SearchContext.findElement(By...)
或
2 )By.findElement(SearchContext...)
兩者都做同樣的事情!
說,在你的情況,你有一個司機和像這樣通過變量:
WebDriver driver = new FirefoxDriver();
By addButtonLocator = By.id("asdf");
現在
您可以通過兩種方式找到你的元素:
1)driver.findElement(addButtonLocator);
或
2)addButtonLocator.findElement(driver);
A獲得!都做同樣的事情,這只是另一種方式來「讀」這些表述是這樣的:
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"
正如前面所說的,而不是驅動,你可以有如果使用已識別的元素,則範圍更小。
你確定'addButton.FindElement(By.XPath(「ABC」))'是一個有效的表達式嗎?我使用Java而不是C#,Java不接受這個表達式,因爲Byxpath(「...」)是一個By.class,但是這個語句在這個組合中需要一個'SearchContext'(例如chromedriver) – spcial
據我所知,這是我們如何在Java中使用它 - 'driver.findElement(addButton)'。當我們嘗試在關鍵字驅動框架中編寫泛型函數時,通常會使用它。 –