- Selenium WebDriver 3 Practical Guide
- Unmesh Gundecha Satya Avasarala
- 222字
- 2021-08-13 16:08:07
The By.id() method
On a web page, each element is uniquely identified by an ID attribute, which is optionally provided. An ID can be assigned manually by the developer of the web application or left to be dynamically generated by the application. Dynamically-generated IDs can be changed on every page refresh or over a period of time. Now, consider the HTML code of the Search box:
<input id="search" type="search" name="q" value="" class="input-text required-entry" maxlength="128" placeholder="Search entire store here..." autocomplete="off">
In the preceding code, the id attribute value of the search box is search.
Let's see how to use the ID attribute as a locating mechanism to find the Search box:
@Test
public void byIdLocatorExample() {
WebElement searchBox = driver.findElement(By.id("search"));
searchBox.sendKeys("Bags");
searchBox.submit();
assertThat(driver.getTitle())
.isEqualTo("Search results for: 'Bags'");
}
In preceding code, we used the By.id() method and the search box's id attribute value to find the element.
Here, try to use the By.id identifier, and use the name value (that is, q) instead of the id value (that is, search). Modify line three as follows:
WebElement searchBox = driver.findElement(By.id("q"));
The test script will fail to throw an exception, as follows:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"q"}
WebDriver couldn't find an element by id whose value is q. Thus, it throws an exception saying NoSuchElementException.
- 從區塊鏈到Web3:構建未來互聯網生態
- 物聯網信息安全
- 互聯網基礎資源技術與應用發展態勢(2021—2023)
- Mastering JavaFX 10
- 城域網與廣域網(第2版)
- Unity Artificial Intelligence Programming
- Practical Web Penetration Testing
- 5G技術核心與增強:從R15到R17
- 計算機網絡技術
- LwIP應用開發實戰指南:基于STM32
- Getting Started with tmux
- 物聯網與智慧農業
- 智慧城市中的物聯網技術
- Python Web Scraping Cookbook
- Building Microservices with Spring