diff --git a/docs_source_files/content/webdriver/web_element.de.md b/docs_source_files/content/webdriver/web_element.de.md index 1cced5ff84b3..66bb699813cd 100644 --- a/docs_source_files/content/webdriver/web_element.de.md +++ b/docs_source_files/content/webdriver/web_element.de.md @@ -404,6 +404,7 @@ namespace FindElementsFromElement { (async function example() { let driver = new Builder() + .forBrowser('chrome') .build(); @@ -534,6 +535,7 @@ Wird verwendet um das Element, das den Fokus hat zu finden oder um es zu verfolg import org.openqa.selenium.By import org.openqa.selenium.chrome.ChromeDriver + fun main() { val driver = ChromeDriver() try { @@ -855,7 +857,12 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample + +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.de.md.backup b/docs_source_files/content/webdriver/web_element.de.md.backup new file mode 100644 index 000000000000..8a9de95970c9 --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.de.md.backup @@ -0,0 +1,888 @@ +--- +title: "Webelement" +weight: 9 +--- + +WebElement repräsentiert ein Element im DOM. WebElemente können ausgehend +vom Wurzelknoten (root) gesucht werden oder ausgehend von einem anderen WebElement. + +Die WebDriver API stellt Methoden zur Verfügung, die es ermöglichen WebElemente, +aufgrund ihrer Eigenschaften zu finden wie z.B. ID, Name, Class (CSS-Klasse), Xpath, +CSS Selektoren, Text einer Verlinkung, etc. + +## Elemente finden + +findElement wird verwendet, um ein WebElement zu finden. Die Funktion liefert +als Rückgabewert die Referenz auf ein einzelnes WebElement, dieses kann +dann für weitere Aktionen verwendet werden. + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Finden einer Liste von Elementen + +Äquivalent zu 'Find Element' liefert die Funktion findElements eine Liste von +WebElementen. Um ein bestimmtes Element aus der Liste zu verwenden, ist es notwendig +über die Liste zu iterieren, um eine Aktion an den einzelnen Elementen auszuführen. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Finden eines Elements innerhalb anderer Elemente + +Es ist auch möglich Elemente zu suchen, basierend auf einem existierenden +Webelemente, sogenannte "Kinder" bzw. "Nachfahren". +Um dies durchzuführen, wird die 'findElement' Methode direkt vom Elternknoten +ausgeführt, um nach entsprechenden Kinder-Elementen zu suchen. + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '
' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Finden von mehreren Elementen innerhalb eines anderen Elements + +findElements wird verwenden um entsprechende WebElemente im Kontext eines +Eltern-Elementen zu finden. Um dies durchzuführen wird die 'findElements'-Methode +vom entsprechenden WebElement ausgeführt. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Aktives Element + +Wird verwendet um das Element, das den Fokus hat zu finden oder um es zu verfolgen. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Element aktiviert? + +Die Methode dient dazu, um festzustellen, ob das referenzierte +Element prüfen ob es aktiviert oder deaktiviert ist. Der Rückgabewert +ist ein Boolean, **Wahr** wenn das Element **aktiv** (enabled) +ist, andernfalls **Falsch**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + // Returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Element ausgewählt? + +Die Methode stellt fest of das referenzierte Element ausgewählt (_Selected_) +ist oder nicht. Die Methode wird häufig verwendet mit WebElementen vom Typ +Checkbox, Radiobutton, Eingabefelder und anderen Elementen die auswählbare +Optionen anbieten. + +Der Rückgabewert ist ein Boolean, **Wahr** wenn das Element im aktuellen +Browserkontext **selektiert** ist, andernfalls den Wert **Falsch**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## TagName des Elements ermitteln + +Wird verwendet um den [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +des referenzierten Elements, zu ermitteln. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Ermitteln des Elementbereichs (Rect) + +Wird verwendet um die Dimension und die Koordinaten des +entsprechenden Elementes zu ermitteln. + +Der Rückgabewert liefert folgende Werte: +* X-Koordinate des Elementes ausgehend von der linken oberen Ecke +* Y-Koordinate des Elementes ausgehend von der linken oberen Ecke +* Höhe des Elementes +* Breite des Elementes + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Ermitteln von CSS Werten + +Liefert den Wert einer spezifischen CSS Eigenschaft des entsprechenden +Elementes im aktuellen Browserkontext. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Ermitteln des Textes + +Liefert den Text des spezifischen Elementes. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.en.md b/docs_source_files/content/webdriver/web_element.en.md index 305d3a51e611..9a67a9c09996 100644 --- a/docs_source_files/content/webdriver/web_element.en.md +++ b/docs_source_files/content/webdriver/web_element.en.md @@ -477,6 +477,8 @@ It is used to track (or) find DOM element which has the focus in the current bro {{< / code-panel >}} {{< code-panel language="csharp" >}} using OpenQA.Selenium; + + using OpenQA.Selenium.Chrome; namespace ActiveElement { @@ -843,6 +845,10 @@ driver.get("https://example.com"); // Retrieves the text of the element String text = driver.findElement(By.cssSelector("h1")).getText(); {{< / code-panel >}} + + + + {{< code-panel language="python" >}} # Navigate to url driver.get("https://www.example.com") @@ -851,7 +857,14 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample + +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; + + {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.en.md.backup b/docs_source_files/content/webdriver/web_element.en.md.backup new file mode 100644 index 000000000000..3ef55e6ec071 --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.en.md.backup @@ -0,0 +1,890 @@ +--- +title: "Web element" +weight: 9 +--- + +WebElement represents a DOM element. WebElements can be found by searching from the +document root using a WebDriver instance, or by searching under another +WebElement. + +WebDriver API provides built-in methods to find the WebElements which are +based on different properties like ID, Name, Class, XPath, CSS Selectors, link Text, etc. + +## Find Element + +It is used to find an element and returns a first matching single WebElement reference, +that can be used for future element actions + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +Similar to 'Find Element', but returns a list of matching WebElements. To use a particular WebElement from the list, +you need to loop over the list of elements to perform action on selected element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element From Element + +It is used to find a child element within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElement' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements From Element + +It is used to find the list of matching child WebElements within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElements' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +It is used to track (or) find DOM element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + + + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +This method is used to check if the connected Element +is enabled or disabled on a webpage. +Returns a boolean value, **True** if the connected element is +**enabled** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +This method determines if the referenced Element +is _Selected_ or not. This method is widely used on +Check boxes, radio buttons, input elements, and option elements. + +Returns a boolean value, **True** if referenced element is +**selected** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +It is used to fetch the [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +of the referenced Element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +It is used to fetch the dimensions and coordinates +of the referenced element. + +The fetched data body contain the following details: +* X-axis position from the top-left corner of the element +* y-axis position from the top-left corner of the element +* Height of the element +* Width of the element + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element CSS Value + +Retrieves the value of specified computed style property +of an element in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Text + +Retrieves the rendered text of the specified element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + + + + + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; + + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.es.md b/docs_source_files/content/webdriver/web_element.es.md index 5c0f112e2ed6..d4519373b9e0 100644 --- a/docs_source_files/content/webdriver/web_element.es.md +++ b/docs_source_files/content/webdriver/web_element.es.md @@ -406,6 +406,7 @@ namespace FindElementsFromElement { {{< code-panel language="javascript" >}} const {Builder, By} = require('selenium-webdriver'); + (async function example() { let driver = new Builder() .forBrowser('chrome') @@ -860,7 +861,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.es.md.backup b/docs_source_files/content/webdriver/web_element.es.md.backup new file mode 100644 index 000000000000..5c0f112e2ed6 --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.es.md.backup @@ -0,0 +1,886 @@ +--- +title: "Elemento web" +weight: 9 +--- + +WebElement representa un elemento del DOM. Los WebElements se pueden +encontrar buscando desde la raíz del documento utilizando una instancia de +WebDriver o buscando en otra WebElement. + +El API WebDriver proporciona métodos integrados para encontrar los +elementos web que son basados en diferentes propiedades como ID, +Nombre, Clase, XPath, Selectores CSS, Texto de enlace, etc. + +## Find Element + +Se utiliza para encontrar un elemento y devuelve la primera +referencia única de WebElement que coincide, que puede usarse para +acciones futuras con el elemento + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Obtén el elemento cuadro de búsqueda del webElement 'q' utilizando Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Obtén el elemento cuadro de búsqueda del webElement 'q' utilizando Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navega a la URL + driver.get 'https://google.com' + + # Obtén el elemento cuadro de búsqueda del webElement 'q' utilizando Find Element + search_bar = driver.find_element(name: 'q') + + # Ejecuta una acción utilizando WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +// Navega a la URL +await driver.get('http://www.google.com'); + +// Obtén el elemento cuadro de búsqueda del webElement 'q' utilizando Find Element +let searchBar = driver.findElement(By.name('q')); + +// Ejecuta una acción utilizando WebElemen +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Obtén el elemento cuadro de búsqueda del webElement 'q' utilizando Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +Similar a 'Find Element', pero devuelve una lista +de elementos web coincidentes. +Para usar un WebElement particular de la lista, +debes recorrerla lista de elementos para realizar +acciones con el elemento seleccionado. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Obtén todos los elementos con el nombre de etiqueta 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navega a la Url + driver.Navigate().GoToUrl("https://example.com"); + + // Obtén todos los elementos con el nombre de etiqueta 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navega a la Url + driver.get 'https://www.example.com' + + # Obtén todos los elementos con el nombre de etiqueta 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navega a la URL + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Obtén todos los elementos con el nombre de etiqueta 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element desde Element + +Se utiliza para encontrar un elemento hijo dentro +del contexto del elemento padre. +Para lograr esto, el WebElement primario se encadena +con 'findElement' para acceder a elementos secundarios. + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navega a la URL + driver.get 'https://google.com' + + # Obtén y almacena el elemento DOM `` + search_form = driver.find_element(name: 'f') + + # Obtén el elemento de caja de búsqueda del elemento `form` + search_bar = search_form.find_element(name: 'q') + + # Ejecuta una acción usando WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navega a la URL +await driver.get('http://www.google.com'); + +//Obtén y alamacena el elemento DOM `` +let searchForm = driver.findElement(By.name('f')); + +//Obtén el elemento de caja de búsqueda del elemento `form` +let searchBar = searchForm.findElement(By.name('q')); + +//Ejecuta una acción usando WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements desde Element + +Se utiliza para encontrar una lista de elementos +hijos dentro del contexto del elemento padre. +Para lograr esto, el WebElement primario se encadena +con 'findElements'para acceder a elementos secundarios. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Obten el elemento con el nombre de etiqueta 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Obtén todos los elementos con el nombre de etiqueta 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Obten el elemento con el nombre de etiqueta 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Obtén todos los elementos con el nombre de etiqueta 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navega a la URL + driver.get 'https://www.example.com' + + # Obten el elemento con el nombre de etiqueta 'div' + element = driver.find_element(:tag_name,'div') + + # Obtén todos los elementos con el nombre de etiqueta 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Obten el elemento con el nombre de etiqueta 'div' + let element = driver.findElement(By.css("div")); + + // Obtén todos los elementos con el nombre de etiqueta 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Obten el elemento con el nombre de etiqueta 'div' + val element = driver.findElement(By.tagName("div")) + + // Obtén todos los elementos con el nombre de etiqueta 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +Se utiliza para rastrear (o) encontrar el elemento DOM +que tiene el foco en el contexto de navegación actual. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Obtener el atributo del elemento activo actual + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Obtener el atributo del elemento activo actual + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navega a la URL + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Obtener el atributo del elemento activo actual + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Obtener el atributo del elemento activo actual + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Obtener el atributo del elemento activo actual + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Obtener el atributo del elemento activo actual + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +Este método se utiliza para comprobar si el elemento conectado +está habilitado o deshabilitado en una página web. +Devuelve un valor booleano, **True** si el elemento conectado es +**habilitado** en el contexto de navegación actual, +de lo contrario, devuelve **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +This method determines if the referenced Element +is _Selected_ or not. This method is widely used on +Check boxes, radio buttons, input elements, and option elements. + +Returns a boolean value, **True** if referenced element is +**selected** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +It is used to fetch the [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +of the referenced Element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +It is used to fetch the dimensions and coordinates +of the referenced element. + +The fetched data body contain the following details: +* X-axis position from the top-left corner of the element +* y-axis position from the top-left corner of the element +* Height of the element +* Width of the element + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element CSS Value + +Retrieves the value of specified computed style property +of an element in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Text + +Retrieves the rendered text of the specified element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.fr.md b/docs_source_files/content/webdriver/web_element.fr.md index 85f824888cdf..122d6c27c25e 100644 --- a/docs_source_files/content/webdriver/web_element.fr.md +++ b/docs_source_files/content/webdriver/web_element.fr.md @@ -849,7 +849,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.fr.md.backup b/docs_source_files/content/webdriver/web_element.fr.md.backup new file mode 100644 index 000000000000..85f824888cdf --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.fr.md.backup @@ -0,0 +1,875 @@ +--- +title: "Web element" +weight: 9 +--- + +WebElement représente un élément DOM. Les WebElements peuvent être trouvés en recherchant +racine du document à l'aide d'une instance WebDriver ou en recherchant sous une autre +WebElement + +L'API WebDriver fournit des méthodes intégrées pour trouver les WebElements qui sont +basé sur différentes propriétés comme ID, nom, classe, XPath, sélecteurs CSS, texte de lien, etc. + +## Find Element + +Il est utilisé pour rechercher un élément et renvoie une première référence WebElement unique correspondante, +qui peut être utilisé pour de futures actions d'élément + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +Similaire à "Rechercher un élément", mais renvoie une liste de WebElements correspondants. Pour utiliser un WebElement particulier de la liste, +vous devez parcourir la liste des éléments pour effectuer une action sur l'élément sélectionné. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element From Element + +Il est utilisé pour rechercher un élément enfant dans le contexte de l'élément parent. +Pour ce faire, le WebElement parent est chaîné avec 'findElement' pour accéder aux éléments enfants + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements From Element + +Il est utilisé pour rechercher la liste des WebElements enfants correspondants dans le contexte de l'élément parent. +Pour ce faire, le WebElement parent est chaîné avec "findElements" pour accéder aux éléments enfants + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +Il est utilisé pour suivre (ou) trouver l'élément DOM qui a le focus dans le contexte de navigation actuel. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +This method is used to check if the connected Element +is enabled or disabled on a webpage. +Returns a boolean value, **True** if the connected element is +**enabled** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +This method determines if the referenced Element +is _Selected_ or not. This method is widely used on +Check boxes, radio buttons, input elements, and option elements. + +Returns a boolean value, **True** if referenced element is +**selected** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +It is used to fetch the [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +of the referenced Element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +It is used to fetch the dimensions and coordinates +of the referenced element. + +The fetched data body contain the following details: +* X-axis position from the top-left corner of the element +* y-axis position from the top-left corner of the element +* Height of the element +* Width of the element + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element CSS Value + +Retrieves the value of specified computed style property +of an element in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Text + +Retrieves the rendered text of the specified element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.ja.md b/docs_source_files/content/webdriver/web_element.ja.md index abe0d1293a8a..5ab777954b7d 100644 --- a/docs_source_files/content/webdriver/web_element.ja.md +++ b/docs_source_files/content/webdriver/web_element.ja.md @@ -491,6 +491,7 @@ namespace FindElementsFromElement { } finally { driver.Quit(); } + } } } @@ -841,7 +842,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.ja.md.backup b/docs_source_files/content/webdriver/web_element.ja.md.backup new file mode 100644 index 000000000000..abe0d1293a8a --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.ja.md.backup @@ -0,0 +1,867 @@ +--- +title: "Web要素" +weight: 9 +--- + +Web要素はDOM要素を表します。 +Web要素は、WebDriverインスタンスを使用してドキュメントルートから検索するか、別のWeb要素の下で検索することで見つけることができます。 + +WebDriver APIは、ID、名前、クラス、XPath、CSSセレクター、リンクテキストなどのさまざまなプロパティに基づいたWeb要素を見つけるための組み込みメソッドを提供します。 + +## 要素の検索 + +要素を検索するために使用され、最初の一致する単一のWeb要素の参照を返します。 +これは、将来の要素アクションに使用できます。 + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## 複数の要素の検索 + +'要素の検索'に似ていますが、一致するWeb要素のリストを返します。 +リストから特定のWeb要素を使用するには、要素のリストをループして、選択した要素に対してアクションを実行する必要があります。 + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素から要素の検索 + +親要素のコンテキスト内で子要素を見つけるために使用します。 +これを実現するには、親Web要素を'findElement'と連鎖して、子要素にアクセスします。 + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素から複数の要素の検索 + +親要素のコンテキスト内で一致する子Web要素のリストを見つけるために使用します。 +これを実現するために、親Web要素は’findElements'と連鎖して子要素にアクセスします。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## アクティブな要素の取得 + +現在のブラウジングコンテキストにフォーカスがあるDOM要素を追跡(または)検索するために使用します。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素が有効か + +このメソッドは、接続された要素がWebページで有効または無効になっているかどうかを確認するために使います。 +ブール値を返し、現在のブラウジングコンテキストで接続されている要素が +**有効(enabled)** になっている場合は **True** 、そうでない場合は **false** を返します。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素が選択されているかどうか + +このメソッドは、参照された要素が選択されているかどうかを判断します。 +このメソッドは、チェックボックス、ラジオボタン、入力要素、およびオプション要素で広く使われています。 + +ブール値を返し、現在のブラウジングコンテキストで参照された要素が **選択されている** 場合は **True** 、そうでない場合は **false** を返します。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素のタグ名を取得 + +これは、現在のブラウジングコンテキストにフォーカスがある参照された要素の +[TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) を取得するために使います。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素矩形を取得 + +参照される要素の寸法と座標を取得するために使います。 + +取得データのbodyには、次の詳細が含まれます。 +* 要素の左上隅からのx軸の位置 +* 要素の左上隅からのy軸の位置 +* 要素の高さ +* 要素の幅 + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素のCSSの値を取得 + +現在のブラウジングコンテキスト内の要素の指定された計算したスタイル属性の値を取得します。 + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## 要素テキストを取得 + +指定された要素のレンダリングされたテキストを取得します。 + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.ko.md b/docs_source_files/content/webdriver/web_element.ko.md index b7729491a04a..dc2518a98bc1 100644 --- a/docs_source_files/content/webdriver/web_element.ko.md +++ b/docs_source_files/content/webdriver/web_element.ko.md @@ -337,6 +337,7 @@ To achieve this, the parent WebElement is chained with 'findElements' to access } } } + {{< / code-panel >}} {{< code-panel language="python" >}} from selenium import webdriver @@ -855,7 +856,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.ko.md.backup b/docs_source_files/content/webdriver/web_element.ko.md.backup new file mode 100644 index 000000000000..b7729491a04a --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.ko.md.backup @@ -0,0 +1,881 @@ +--- +title: "Web element" +weight: 9 +--- + +{{% notice info %}} + Page being translated from +English to Korean. Do you speak Korean? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +WebElement represents a DOM element. WebElements can be found by searching from the +document root using a WebDriver instance, or by searching under another +WebElement. + +WebDriver API provides built-in methods to find the WebElements which are +based on different properties like ID, Name, Class, XPath, CSS Selectors, link Text, etc. + +## Find Element + +It is used to find an element and returns a first matching single WebElement reference, +that can be used for future element actions + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +Similar to 'Find Element', but returns a list of matching WebElements. To use a particular WebElement from the list, +you need to loop over the list of elements to perform action on selected element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element From Element + +It is used to find a child element within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElement' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements From Element + +It is used to find the list of matching child WebElements within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElements' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +It is used to track (or) find DOM element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +This method is used to check if the connected Element +is enabled or disabled on a webpage. +Returns a boolean value, **True** if the connected element is +**enabled** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +This method determines if the referenced Element +is _Selected_ or not. This method is widely used on +Check boxes, radio buttons, input elements, and option elements. + +Returns a boolean value, **True** if referenced element is +**selected** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +It is used to fetch the [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +of the referenced Element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +It is used to fetch the dimensions and coordinates +of the referenced element. + +The fetched data body contain the following details: +* X-axis position from the top-left corner of the element +* y-axis position from the top-left corner of the element +* Height of the element +* Width of the element + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element CSS Value + +Retrieves the value of specified computed style property +of an element in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Text + +Retrieves the rendered text of the specified element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.nl.md b/docs_source_files/content/webdriver/web_element.nl.md index 514df7ee7b57..3ba3362b9bb4 100644 --- a/docs_source_files/content/webdriver/web_element.nl.md +++ b/docs_source_files/content/webdriver/web_element.nl.md @@ -855,7 +855,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.nl.md.backup b/docs_source_files/content/webdriver/web_element.nl.md.backup new file mode 100644 index 000000000000..514df7ee7b57 --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.nl.md.backup @@ -0,0 +1,881 @@ +--- +title: "Web element" +weight: 9 +--- + +{{% notice info %}} + Page being translated from +English to Dutch. Do you speak Dutch? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +WebElement represents a DOM element. WebElements can be found by searching from the +document root using a WebDriver instance, or by searching under another +WebElement. + +WebDriver API provides built-in methods to find the WebElements which are +based on different properties like ID, Name, Class, XPath, CSS Selectors, link Text, etc. + +## Find Element + +It is used to find an element and returns a first matching single WebElement reference, +that can be used for future element actions + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +Similar to 'Find Element', but returns a list of matching WebElements. To use a particular WebElement from the list, +you need to loop over the list of elements to perform action on selected element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element From Element + +It is used to find a child element within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElement' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements From Element + +It is used to find the list of matching child WebElements within the context of parent element. +To achieve this, the parent WebElement is chained with 'findElements' to access child elements + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +It is used to track (or) find DOM element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +This method is used to check if the connected Element +is enabled or disabled on a webpage. +Returns a boolean value, **True** if the connected element is +**enabled** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +This method determines if the referenced Element +is _Selected_ or not. This method is widely used on +Check boxes, radio buttons, input elements, and option elements. + +Returns a boolean value, **True** if referenced element is +**selected** in the current browsing context else returns **false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +It is used to fetch the [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +of the referenced Element which has the focus in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +It is used to fetch the dimensions and coordinates +of the referenced element. + +The fetched data body contain the following details: +* X-axis position from the top-left corner of the element +* y-axis position from the top-left corner of the element +* Height of the element +* Width of the element + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element CSS Value + +Retrieves the value of specified computed style property +of an element in the current browsing context. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Text + +Retrieves the rendered text of the specified element. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.pt-br.md b/docs_source_files/content/webdriver/web_element.pt-br.md index 6f0164ec2929..cf29e5511c3e 100644 --- a/docs_source_files/content/webdriver/web_element.pt-br.md +++ b/docs_source_files/content/webdriver/web_element.pt-br.md @@ -861,7 +861,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.pt-br.md.backup b/docs_source_files/content/webdriver/web_element.pt-br.md.backup new file mode 100644 index 000000000000..6f0164ec2929 --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.pt-br.md.backup @@ -0,0 +1,887 @@ +--- +title: "Elemento Web" +weight: 9 +--- + +WebElement representa um elemento DOM. WebElements podem ser encontrados +pesquisando na raiz do documento usando uma instância do WebDriver ou +pesquisando em outro WebElement. + +WebDriver API fornece métodos integrados para encontrar WebElements que +são baseados em diferentes propriedades, como ID, Nome, Classe, XPath, +Seletores CSS, Texto do link, etc. + +## Encontrar elemento + +É usado para encontrar um elemento e retorna a primeira referência +WebElement única correspondente, que pode ser usado para ações futuras +do elemento + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Encontrar elementos + +Semelhante a 'Encontrar Elemento', mas retorna uma lista de WebElements +correspondentes. Para usar um determinado WebElement da lista, +você precisa percorrer a lista de elementos para executar a ação no +elemento selecionado. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Encontrar Elemento a partir do Elemento + +É usado para localizar um elemento filho dentro do contexto do elemento +pai. Para conseguir isso, o WebElement pai é encadeado com 'findElement' +para acessar os elementos filhos + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Encontrar Elementos a partir do Elemento + +É usado para localizar a lista de WebElements filhos correspondentes +dentro do contexto do elemento pai. Para conseguir isso, o WebElement +pai é encadeado com 'findElements' para acessar os elementos filho + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Coletar elemento ativo + +É usado para rastrear (ou) localizar o elemento DOM que tem o foco no +contexto de navegação atual. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Elemento está ativado + +Este método é usado para verificar se o elemento conectado +está habilitado ou desabilitado em uma página da web. +Retorna um valor booleano, **True** se o elemento conectado estiver +**ativado** no contexto de navegação atual, caso contrário, +retorna **False**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Elemento está selecionado + +Este método determina se o elemento referenciado +é _Selected_ ou não. Este método é amplamente utilizado em +caixas de seleção, botões de opção, elementos de entrada e elementos de +opção. + +Retorna um valor booleano, **true** se o elemento referenciado for +**selected** no contexto de navegação atual, caso contrário, retorna +**false**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Coletar TagName do elemento + +É usado para buscar o [TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) +do elemento referenciado que tem o foco no contexto de navegação atual. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Coletar retângulo do elemento + +É usado para buscar as dimensões e coordenadas +do elemento referenciado. + +O corpo de dados buscado contém os seguintes detalhes: +* Posição do eixo X a partir do canto superior esquerdo do elemento +* posição do eixo y a partir do canto superior esquerdo do elemento +* Altura do elemento +* Largura do elemento + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## Coletar valor CSS do elemento + +Recupera o valor da propriedade de estilo computado especificada +de um elemento no contexto de navegação atual. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## Coletar texto do elemento + +Recupera o texto renderizado do elemento especificado. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Please provide a pr for code sample + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}} diff --git a/docs_source_files/content/webdriver/web_element.zh-cn.md b/docs_source_files/content/webdriver/web_element.zh-cn.md index 77307f40f15f..87e409e0ffc9 100644 --- a/docs_source_files/content/webdriver/web_element.zh-cn.md +++ b/docs_source_files/content/webdriver/web_element.zh-cn.md @@ -851,7 +851,11 @@ driver.get("https://www.example.com") text = driver.find_element(By.CSS_SELECTOR, "h1").text {{< / code-panel >}} {{< code-panel language="csharp" >}} -// Please provide a pr for code sample +// Navigate to url +driver.Url="https://example.com"; + +// Retrieves the text of the element +String text = driver.FindElement(By.cssSelector("h1")).Text; {{< / code-panel >}} {{< code-panel language="ruby" >}} # Navigate to url diff --git a/docs_source_files/content/webdriver/web_element.zh-cn.md.backup b/docs_source_files/content/webdriver/web_element.zh-cn.md.backup new file mode 100644 index 000000000000..9e0aca5e36fb --- /dev/null +++ b/docs_source_files/content/webdriver/web_element.zh-cn.md.backup @@ -0,0 +1,877 @@ +--- +title: "网络元素" +weight: 9 +--- + + +WebElement表示DOM元素. +可以通过使用WebDriver实例从文档根节点进行搜索, +或者在另一个WebElement下进行搜索来找到WebElement. + +WebDriver API提供了内置方法来查找基于不同属性的WebElement +(例如ID, Name, Class, XPath, CSS选择器, 链接文本等). + +## Find Element + +此方法用于查找元素并返回第一个匹配的单个WebElement引用, +该元素可用于进一步的元素操作. + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); + +driver.get("http://www.google.com"); + +// Get search box element from webElement 'q' using Find Element +WebElement searchBox = driver.findElement(By.name("q")); + +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +driver.get("http://www.google.com") + +# Get search box element from webElement 'q' using Find Element +search_box = driver.find_element(By.NAME, "q") + +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); + +driver.Url = "http://www.google.com"; + +// Get search box element from webElement 'q' using Find Element +IWebElement searchbox = driver.FindElement(By.Name("q")); + +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get search box element from webElement 'q' using Find Element + search_bar = driver.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +// Get search box element from webElement 'q' using Find Element +let searchBar = driver.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() + +driver.get("http://www.google.com") + +// Get search box element from webElement 'q' using Find Element +val searchBox = driver.findElement(By.name("q")) + +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements + +与"Find Element"相似, 但返回的是匹配WebElement列表. +要使用列表中的特定WebElement, +您需要遍历元素列表以对选定元素执行操作. + +{{< code-tab >}} + {{< code-panel language="java" >}} +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.firefox.FirefoxDriver; +import java.util.List; + +public class findElementsExample { + public static void main(String[] args) { + WebDriver driver = new FirefoxDriver(); + try { + driver.get("https://example.com"); + // Get all the elements available with tag name 'p' + List elements = driver.findElements(By.tagName("p")); + for (WebElement element : elements) { + System.out.println("Paragraph text:" + element.getText()); + } + } finally { + driver.quit(); + } + } +} + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() + +# Navigate to Url +driver.get("https://www.example.com") + +# Get all the elements available with tag name 'p' +elements = driver.find_elements(By.TAG_NAME, 'p') + +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Firefox; +using System.Collections.Generic; + +namespace FindElementsExample { + class FindElementsExample { + public static void Main(string[] args) { + IWebDriver driver = new FirefoxDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://example.com"); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = driver.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get all the elements available with tag name 'p' + elements = driver.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +const {Builder, By} = require('selenium-webdriver'); +(async function example() { + let driver = await new Builder().forBrowser('firefox').build(); + try { + // Navigate to Url + await driver.get('https://www.example.com'); + + // Get all the elements available with tag 'p' + let elements = await driver.findElements(By.css('p')); + for(let e of elements) { + console.log(await e.getText()); + } + } + finally { + await driver.quit(); + } +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +import org.openqa.selenium.By +import org.openqa.selenium.firefox.FirefoxDriver + +fun main() { + val driver = FirefoxDriver() + try { + driver.get("https://example.com") + // Get all the elements available with tag name 'p' + val elements = driver.findElements(By.tagName("p")) + for (element in elements) { + println("Paragraph text:" + element.text) + } + } finally { + driver.quit() + } +} + {{< / code-panel >}} +{{< / code-tab >}} + + +## Find Element From Element + +此方法用于在父元素的上下文中查找子元素. +为此, 父WebElement与"findElement"链接并访问子元素. + + +{{< code-tab >}} + {{< code-panel language="java" >}} +WebDriver driver = new FirefoxDriver(); +driver.get("http://www.google.com"); +WebElement searchForm = driver.findElement(By.tagName("form")); +WebElement searchBox = searchForm.findElement(By.name("q")); +searchBox.sendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Firefox() +driver.get("http://www.google.com") +search_form = driver.find_element(By.TAG_NAME, "form") +search_box = search_form.find_element(By.NAME, "q") +search_box.send_keys("webdriver") + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +IWebDriver driver = new FirefoxDriver(); +driver.Url = "http://www.google.com"; +IWebElement searchForm = driver.FindElement(By.TagName("form")); +IWebElement searchbox = searchForm.FindElement(By.Name("q")); +searchbox.SendKeys("webdriver"); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +require 'selenium-webdriver' +driver = Selenium::WebDriver.for :firefox +begin + # Navigate to URL + driver.get 'https://google.com' + + # Get and store DOM element '' + search_form = driver.find_element(name: 'f') + + # Get search box element from webElement 'form' + search_bar = search_form.find_element(name: 'q') + + # Perform action using WebElement + search_bar.send_keys 'Webdriver' +ensure + driver.quit +end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +let {Builder, By} = require('selenium-webdriver'); +driver = new Builder().forBrowser('firefox').build(); + +(async function test(){ + +//Navigate to url +await driver.get('http://www.google.com'); + +//Get and store DOM element '' +let searchForm = driver.findElement(By.name('f')); + +//Get search box element from webElement 'form' +let searchBar = searchForm.findElement(By.name('q')); + +//Perform action using WebElement +await searchBar.sendKeys('Webdriver'); + +})(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +val driver = FirefoxDriver() +driver.get("http://www.google.com") +val searchForm = driver.findElement(By.tagName("form")) +val searchBox = searchForm.findElement(By.name("q")) +searchBox.sendKeys("webdriver") + {{< / code-panel >}} +{{< / code-tab >}} + +## Find Elements From Element + +此方法用于在父元素的上下文中查找匹配子WebElement的列表. +为此, 父WebElement与"findElements"链接并访问子元素. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.By; + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.chrome.ChromeDriver; + import java.util.List; + + public class findElementsFromElement { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("https://example.com"); + + // Get element with tag name 'div' + WebElement element = driver.findElement(By.tagName("div")); + + // Get all the elements available with tag name 'p' + List elements = element.findElements(By.tagName("p")); + for (WebElement e : elements) { + System.out.println(e.getText()); + } + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} +from selenium import webdriver +from selenium.webdriver.common.by import By + +driver = webdriver.Chrome() +driver.get("https://www.example.com") + +# Get element with tag name 'div' +element = driver.find_element(By.TAG_NAME, 'div') + +# Get all the elements available with tag name 'p' +elements = element.find_elements(By.TAG_NAME, 'p') +for e in elements: + print(e.text) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using System.Collections.Generic; + +namespace FindElementsFromElement { + class FindElementsFromElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + driver.Navigate().GoToUrl("https://example.com"); + + // Get element with tag name 'div' + IWebElement element = driver.FindElement(By.TagName("div")); + + // Get all the elements available with tag name 'p' + IList < IWebElement > elements = element.FindElements(By.TagName("p")); + foreach(IWebElement e in elements) { + System.Console.WriteLine(e.Text); + } + } finally { + driver.Quit(); + } + } + } +} + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + # Navigate to URL + driver.get 'https://www.example.com' + + # Get element with tag name 'div' + element = driver.find_element(:tag_name,'div') + + # Get all the elements available with tag name 'p' + elements = element.find_elements(:tag_name,'p') + + elements.each { |e| + puts e.text + } + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = new Builder() + .forBrowser('chrome') + .build(); + + await driver.get('https://www.example.com'); + + // Get element with tag name 'div' + let element = driver.findElement(By.css("div")); + + // Get all the elements available with tag name 'p' + let elements = await element.findElements(By.css("p")); + for(let e of elements) { + console.log(await e.getText()); + } + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://example.com") + + // Get element with tag name 'div' + val element = driver.findElement(By.tagName("div")) + + // Get all the elements available with tag name 'p' + val elements = element.findElements(By.tagName("p")) + for (e in elements) { + println(e.text) + } + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Active Element + +此方法用于追溯或查找当前页面上下文中具有焦点的DOM元素. + +{{< code-tab >}} + {{< code-panel language="java" >}} + import org.openqa.selenium.*; + import org.openqa.selenium.chrome.ChromeDriver; + + public class activeElementTest { + public static void main(String[] args) { + WebDriver driver = new ChromeDriver(); + try { + driver.get("http://www.google.com"); + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement"); + + // Get attribute of current active element + String attr = driver.switchTo().activeElement().getAttribute("title"); + System.out.println(attr); + } finally { + driver.quit(); + } + } + } + {{< / code-panel >}} + {{< code-panel language="python" >}} + from selenium import webdriver + from selenium.webdriver.common.by import By + + driver = webdriver.Chrome() + driver.get("https://www.google.com") + driver.find_element(By.CSS_SELECTOR, '[name="q"]').send_keys("webElement") + + # Get attribute of current active element + attr = driver.switch_to.active_element.get_attribute("title") + print(attr) + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + using OpenQA.Selenium; + using OpenQA.Selenium.Chrome; + + namespace ActiveElement { + class ActiveElement { + public static void Main(string[] args) { + IWebDriver driver = new ChromeDriver(); + try { + // Navigate to Url + driver.Navigate().GoToUrl("https://www.google.com"); + driver.FindElement(By.CssSelector("[name='q']")).SendKeys("webElement"); + + // Get attribute of current active element + string attr = driver.SwitchTo().ActiveElement().GetAttribute("title"); + System.Console.WriteLine(attr); + } finally { + driver.Quit(); + } + } + } + } + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + require 'selenium-webdriver' + driver = Selenium::WebDriver.for :chrome + begin + driver.get 'https://www.google.com' + driver.find_element(css: '[name="q"]').send_keys('webElement') + + # Get attribute of current active element + attr = driver.switch_to.active_element.attribute('title') + puts attr + ensure + driver.quit + end + {{< / code-panel >}} + {{< code-panel language="javascript" >}} + const {Builder, By} = require('selenium-webdriver'); + + (async function example() { + let driver = await new Builder().forBrowser('chrome').build(); + await driver.get('https://www.google.com'); + await driver.findElement(By.css('[name="q"]')).sendKeys("webElement"); + + // Get attribute of current active element + let attr = await driver.switchTo().activeElement().getAttribute("title"); + console.log(`${attr}`) + })(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + import org.openqa.selenium.By + import org.openqa.selenium.chrome.ChromeDriver + + fun main() { + val driver = ChromeDriver() + try { + driver.get("https://www.google.com") + driver.findElement(By.cssSelector("[name='q']")).sendKeys("webElement") + + // Get attribute of current active element + val attr = driver.switchTo().activeElement().getAttribute("title") + print(attr) + } finally { + driver.quit() + } + } + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Enabled + +此方法用于检查网页上连接的元素是否被启用或禁用. +返回一个布尔值, +如果在当前浏览上下文中`启用`了连接的元素, 则返回True; +否则返回`false` . + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.google.com/"); + + //returns true if element is enabled else returns false + boolean value = driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("http://www.google.com") + +# Returns true if element is enabled else returns false +value = driver.find_element(By.NAME, 'btnK').is_enabled() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://google.com"); + +// Store the WebElement +IWebElement element = driver.FindElement(By.Name("btnK")); + +// Prints true if element is enabled else returns false +System.Console.WriteLine(element.Enabled); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'http://www.google.com/' + +# Returns true if element is enabled else returns false +ele = driver.find_element(name: 'btnK').enabled? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.google.com'); + +// Resolves Promise and returns boolean value +let element = await driver.findElement(By.name("btnK")).isEnabled(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.google.com/") + + //returns true if element is enabled else returns false + val attr = driver.findElement(By.name("btnK")).isEnabled() + {{< / code-panel >}} +{{< / code-tab >}} + +## Is Element Selected + +此方法确定是否 _已选择_ 引用的元素. +此方法广泛用于复选框, 单选按钮, 输入元素和选项元素. + +返回一个布尔值, +如果在当前浏览上下文中 **已选择** 引用的元素, +则返回 **True**, 否则返回 **False**. + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes"); + + //returns true if element is checked else returns false + boolean value = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://the-internet.herokuapp.com/checkboxes") + +# Returns true if element is checked else returns false +value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected() + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://the-internet.herokuapp.com/checkboxes"); + +// Returns true if element ins checked else returns false +bool value = driver.FindElement(By.CssSelector("input[type='checkbox']:last-of-type")).Selected; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://the-internet.herokuapp.com/checkboxes' + +# Returns true if element is checked else returns false +ele = driver.find_element(css: "input[type='checkbox']:last-of-type").selected? + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://the-internet.herokuapp.com/checkboxes'); + +// Returns true if element ins checked else returns false +let res = await driver.findElement(By.css("input[type='checkbox']:last-of-type")).isSelected(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://the-internet.herokuapp.com/checkboxes") + + //returns true if element is checked else returns false + val attr = driver.findElement(By.cssSelector("input[type='checkbox']:first-of-type")).isSelected() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element TagName + +此方法用于获取在当前浏览上下文中 +具有焦点的被引用元素的 +[TagName](https://www.w3.org/TR/webdriver/#dfn-get-element-tag-name) . + +{{< code-tab >}} + {{< code-panel language="java" >}} + //navigates to url + driver.get("https://www.example.com"); + + //returns TagName of the element + String value = driver.findElement(By.cssSelector("h1")).getTagName(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns TagName of the element +attr = driver.find_element(By.CSS_SELECTOR, "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Returns TagName of the element +string attr = driver.FindElement(By.CssSelector("h1")).TagName; + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns TagName of the element +attr = driver.find_element(css: "h1").tag_name + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('https://www.example.com'); + +// Returns TagName of the element +let value = await driver.findElement(By.css('h1')).getTagName(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + //navigates to url + driver.get("https://www.example.com") + + //returns TagName of the element + val attr = driver.findElement(By.cssSelector("h1")).getTagName() + {{< / code-panel >}} +{{< / code-tab >}} + +## Get Element Rect + +用于获取参考元素的尺寸和坐标. + +提取的数据主体包含以下详细信息: +* 元素左上角的X轴位置 +* 元素左上角的y轴位置 +* 元素的高度 +* 元素宽度 + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://www.example.com"); + +// Returns height, width, x and y coordinates referenced element +Rectangle res = driver.findElement(By.cssSelector("h1")).getRect(); + +// Rectangle class provides getX,getY, getWidth, getHeight methods +System.out.println(res.getX()); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(By.CSS_SELECTOR, "h1").rect + {{< / code-panel >}} + {{< code-panel language="csharp" >}} +// Navigate to Url +driver.Navigate().GoToUrl("https://example.com"); + +var res = driver.FindElement(By.CssSelector("h1")); +// Return x and y coordinates referenced element +System.Console.WriteLine(res.Location); +// Returns height, width +System.Console.WriteLine(res.Size); + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Returns height, width, x and y coordinates referenced element +res = driver.find_element(css: "h1").rect + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to url +await driver.get('https://www.example.com'); + +// Returns height, width, x and y coordinates referenced element +let element = await driver.findElement(By.css("h1")).getRect(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to url +driver.get("https://www.example.com") + +// Returns height, width, x and y coordinates referenced element +val res = driver.findElement(By.cssSelector("h1")).rect + +// Rectangle class provides getX,getY, getWidth, getHeight methods +println(res.getX()) + {{< / code-panel >}} +{{< / code-tab >}} + +## 获取元素CSS值 + +获取当前浏览上下文中元素的特定计算样式属性的值. + +{{< code-tab >}} + {{< code-panel language="java" >}} + +// Navigate to Url +driver.get("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="python" >}} + +# Navigate to Url +driver.get('https://www.example.com') + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.findElement(By.LINK_TEXT, "More information...").value_of_css_property('color') + + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + +// Navigate to Url +driver.Navigate().GoToUrl("https://www.example.com"); + +// Retrieves the computed style property 'color' of linktext +String cssValue = driver.FindElement(By.LinkText("More information...")).GetCssValue("color"); + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} + +# Navigate to Url +driver.get 'https://www.example.com' + +# Retrieves the computed style property 'color' of linktext +cssValue = driver.find_element(:link_text, 'More information...').css_value('color') + + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to Url +await driver.get('https://www.example.com'); + +// Retrieves the computed style property 'color' of linktext +let cssValue = await driver.findElement(By.linkText("More information...")).getCssValue('color'); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} + +// Navigate to Url +driver.get("https://www.example.com") + +// Retrieves the computed style property 'color' of linktext +val cssValue = driver.findElement(By.linkText("More information...")).getCssValue("color") + + {{< / code-panel >}} +{{< / code-tab >}} + +## 获取元素文本 + +获取特定元素渲染后的文本. + +{{< code-tab >}} + {{< code-panel language="java" >}} +// Navigate to url +driver.get("https://example.com"); + +// Retrieves the text of the element +String text = driver.findElement(By.cssSelector("h1")).getText(); + {{< / code-panel >}} + {{< code-panel language="python" >}} +# Navigate to url +driver.get("https://www.example.com") + +# Retrieves the text of the element +text = driver.find_element(By.CSS_SELECTOR, "h1").text + {{< / code-panel >}} + {{< code-panel language="csharp" >}} + + {{< / code-panel >}} + {{< code-panel language="ruby" >}} +# Navigate to url +driver.get 'https://www.example.com' + +# Retrieves the text of the element +text = driver.find_element(:css, 'h1').text + {{< / code-panel >}} + {{< code-panel language="javascript" >}} +// Navigate to URL +await driver.get('http://www.example.com'); + +// retrieves the text of the element +let text = await driver.findElement(By.css('h1')).getText(); + {{< / code-panel >}} + {{< code-panel language="kotlin" >}} +// Navigate to URL +driver.get("https://www.example.com") + +// retrieves the text of the element +val text = driver.findElement(By.cssSelector("h1")).getText() + {{< / code-panel >}} +{{< / code-tab >}}