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

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.

主站蜘蛛池模板: 图木舒克市| 靖江市| 象州县| 涟水县| 闻喜县| 甘德县| 礼泉县| 天长市| 和静县| 进贤县| 南召县| 西乌| 香港 | 潮安县| 双城市| 喀什市| 寿光市| 那坡县| 通辽市| 象山县| 灵璧县| 沙坪坝区| 浮梁县| 邢台市| 汨罗市| 阜新| 扬州市| 民勤县| 合肥市| 南投市| 梁山县| 秦安县| 文山县| 磴口县| 凤翔县| 定结县| 军事| 永寿县| 临夏县| 邢台县| 基隆市|