官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 洮南市| 阿克| 萨嘎县| 孝义市| 化隆| 保山市| 永定县| 阜阳市| 锡林浩特市| 澜沧| 海南省| 文安县| 岑溪市| 临沂市| 神木县| 绩溪县| 甘泉县| 宜兴市| 克拉玛依市| 隆安县| 集安市| 黎城县| 邹平县| 城口县| 偏关县| 康平县| 九江县| 株洲市| 福泉市| 略阳县| 德江县| 武山县| 阳城县| 东丰县| 富川| 广平县| 光山县| 西昌市| 江川县| 登封市| 达拉特旗|