diff --git a/examples/javascript/test/elements/information.spec.js b/examples/javascript/test/elements/information.spec.js index 3c3031c24835..ebb32737b17b 100644 --- a/examples/javascript/test/elements/information.spec.js +++ b/examples/javascript/test/elements/information.spec.js @@ -27,7 +27,7 @@ describe('Element Information Test', function () { }); it('Check if checkbox is selected', async function () { - // Returns true if element ins checked else returns false + // Returns true if element is checked else returns false let isSelected = await driver.findElement(By.name("checkbox_input")).isSelected(); assert.equal(isSelected, true); @@ -89,4 +89,4 @@ describe('Element Information Test', function () { }); after(async () => await driver.quit()); -}); \ No newline at end of file +}); diff --git a/examples/javascript/test/elements/locators.spec.js b/examples/javascript/test/elements/locators.spec.js new file mode 100644 index 000000000000..ef03fbf91890 --- /dev/null +++ b/examples/javascript/test/elements/locators.spec.js @@ -0,0 +1,119 @@ +const {By, Builder} = require('selenium-webdriver'); +const assert = require("assert"); + +describe('Element Locator Test', function () { + it('Check if element can be found by class name', async () => { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.className('information')); + const tag = await element.getTagName(); + const id = await element.getAttribute("id"); + const value = await element.getAttribute("value"); + + assert.equal(tag, "input"); + assert.equal(id, "fname"); + assert.equal(value, "Jane"); + await driver.quit(); + }); + + it('Check if element can be found by css selector', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.css('#fname')); + + const tag = await element.getTagName(); + const id = await element.getAttribute("id"); + const value = await element.getAttribute("value"); + + assert.equal(tag, "input"); + assert.equal(id, "fname"); + assert.equal(value, "Jane"); + await driver.quit(); + }); + + it('Check if element can be found by id', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.id('lname')); + + const tag = await element.getTagName(); + const id = await element.getAttribute("id"); + const value = await element.getAttribute("value"); + + assert.equal(tag, "input"); + assert.equal(id, "lname"); + assert.equal(value, "Doe"); + await driver.quit(); + }); + + it('Check if element can be found by name', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.name("newsletter")); + + const tag = await element.getTagName(); + const type = await element.getAttribute("type"); + const value = await element.getAttribute("value"); + + assert.equal(tag, "input"); + assert.equal(type, "checkbox"); + assert.equal(value, "1"); + await driver.quit(); + }); + + + + it('Check if element can be found by link text', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.linkText("Selenium Official Page")); + + const tag = await element.getTagName(); + const href = await element.getAttribute("href"); + + assert.equal(tag, "a"); + assert.equal(href, "https://www.selenium.dev/"); + await driver.quit(); + }); + + it('Check if element can be found by partial link text', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.partialLinkText("Official Page")); + + const tag = await element.getTagName(); + const href = await element.getAttribute("href"); + + assert.equal(tag, "a"); + assert.equal(href, "https://www.selenium.dev/"); + await driver.quit(); + }); + + it('Check if element can be found by tag name', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.tagName("a")); + + const tag = await element.getTagName(); + const text = await element.getText(); + + assert.equal(tag, "a"); + assert.equal(text, "Selenium Official Page"); + await driver.quit(); + }); + + it('Check if element can be found by xpath', async function () { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.selenium.dev/selenium/web/locators_tests/locators.html'); + const element = await driver.findElement(By.xpath('//input[@value="f"]')); + + const tag = await element.getTagName(); + const type = await element.getAttribute("type"); + const value = await element.getAttribute("value"); + + assert.equal(tag, "input"); + assert.equal(type, "radio"); + assert.equal(value, "f"); + await driver.quit(); + }); +}); diff --git a/website_and_docs/content/documentation/webdriver/elements/locators.en.md b/website_and_docs/content/documentation/webdriver/elements/locators.en.md index 865c2910f9ff..74282dd232fe 100644 --- a/website_and_docs/content/documentation/webdriver/elements/locators.en.md +++ b/website_and_docs/content/documentation/webdriver/elements/locators.en.md @@ -91,8 +91,7 @@ available in Selenium. {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L7" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.className('information')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L6-L8" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -124,8 +123,7 @@ textbox, using css. {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L11" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.css('#fname')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L20-L22" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -155,8 +153,7 @@ We will identify the Last Name field using it. {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L15" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.id('lname')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L35-L37" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -187,8 +184,7 @@ We will identify the Newsletter checkbox using it. {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L19" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.name('newsletter')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L50-L52" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -217,8 +213,7 @@ In the HTML snippet shared, we have a link available, let's see how will we loca {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L23" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.linkText('Selenium Official Page')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L67-L69" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -248,8 +243,7 @@ In the HTML snippet shared, we have a link available, lets see how will we locat {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L27" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.partialLinkText('Official Page')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L80-L82" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -277,8 +271,7 @@ From the above HTML snippet shared, lets identify the link, using its html tag " {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L31" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.tagName('a')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L93-L95" >}} {{< /tab >}} {{< tab header="Kotlin" >}} val driver = ChromeDriver() @@ -312,8 +305,7 @@ first name text box. Let us create locator for female radio button using xpath. {{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L35" >}} {{< /tab >}} {{< tab header="JavaScript" >}} - let driver = await new Builder().forBrowser('chrome').build(); - const loc = await driver.findElement(By.xpath('//input[@value='f']')); +{{< gh-codeblock path="examples/javascript/test/elements/locators.spec.js#L106-L108" >}} {{< /tab >}} {{< tab header="Kotlin" >}} import org.openqa.selenium.By