diff --git a/examples/python/tests/elements/test_finders.py b/examples/python/tests/elements/test_finders.py index 53b695b6fc83..11e1eea98ceb 100644 --- a/examples/python/tests/elements/test_finders.py +++ b/examples/python/tests/elements/test_finders.py @@ -1,2 +1,94 @@ +import pytest from selenium import webdriver +from selenium.webdriver.common.by import By +# The tests below marked as skipped mirror the HTML snippet shown at the top of the +# "Finding web elements" documentation and are illustrative only, matching how the +# same examples are shown for the other language bindings: +# +#
    +#
  1. … +#
  2. … +#
  3. Tomato is a Vegetable… +#
+# + + +@pytest.mark.skip(reason="illustrative example, not an executable test") +def test_basic_finders(driver): + vegetable = driver.find_element(By.CLASS_NAME, 'tomatoes') + + +@pytest.mark.skip(reason="illustrative example, not an executable test") +def test_subset_of_dom(driver): + fruits = driver.find_element(By.ID, 'fruits') + fruit = fruits.find_element(By.CLASS_NAME, 'tomatoes') + + +@pytest.mark.skip(reason="illustrative example, not an executable test") +def test_optimized_locator(driver): + fruit = driver.find_element(By.CSS_SELECTOR, '#fruits .tomatoes') + + +@pytest.mark.skip(reason="illustrative example, not an executable test") +def test_all_matching_elements(driver): + plants = driver.find_elements(By.TAG_NAME, 'li') + + +def test_evaluating_shadow_dom(): + driver = webdriver.Chrome() + driver.implicitly_wait(5) + driver.get('https://www.selenium.dev/selenium/web/shadowRootPage.html') + + shadow_host = driver.find_element(By.TAG_NAME, 'custom-checkbox-element') + shadow_root = shadow_host.shadow_root + assert shadow_root + shadow_content = shadow_root.find_element(By.CSS_SELECTOR, 'input[type=checkbox]') + + assert shadow_host.is_displayed() + assert shadow_content.is_displayed() + + driver.quit() + + +def test_get_element(): + driver = webdriver.Chrome() + driver.get('https://www.example.com') + + elements = driver.find_elements(By.TAG_NAME, 'p') + for element in elements: + print(element.text) + + assert len(elements) > 0 + + driver.quit() + + +def test_find_elements_from_element(): + driver = webdriver.Chrome() + driver.get('https://www.example.com') + + element = driver.find_element(By.TAG_NAME, 'div') + elements = element.find_elements(By.TAG_NAME, 'p') + for e in elements: + print(e.text) + + assert len(elements) > 0 + + driver.quit() + + +def test_get_active_element(): + driver = webdriver.Chrome() + driver.get('https://www.selenium.dev/selenium/web/web-form.html') + + driver.find_element(By.CSS_SELECTOR, '[name="my-text"]').send_keys('webElement') + attr = driver.switch_to.active_element.get_attribute('name') + + assert attr == 'my-text' + + driver.quit() diff --git a/website_and_docs/content/documentation/webdriver/elements/finders.en.md b/website_and_docs/content/documentation/webdriver/elements/finders.en.md index 9ee8e2630ab8..0bf1c9b031ec 100644 --- a/website_and_docs/content/documentation/webdriver/elements/finders.en.md +++ b/website_and_docs/content/documentation/webdriver/elements/finders.en.md @@ -46,8 +46,8 @@ two elements that have a class name of "tomatoes" so this method will return the {{< tab header="Java" >}} WebElement vegetable = driver.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -vegetable = driver.find_element(By.CLASS_NAME, "tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L23">}} {{< /tab >}} {{< tab header="CSharp" >}} var vegetable = driver.FindElement(By.ClassName("tomatoes")); @@ -79,9 +79,8 @@ ancestor of the undesired element, then call find element on that object: WebElement fruits = driver.findElement(By.id("fruits")); WebElement fruit = fruits.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruits = driver.find_element(By.ID, "fruits") -fruit = fruits.find_element(By.CLASS_NAME,"tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L28-L29">}} {{< /tab >}} {{< tab header="CSharp" >}} IWebElement fruits = driver.FindElement(By.Id("fruits")); @@ -121,10 +120,8 @@ WebElement shadowHost = driver.findElement(By.cssSelector("#shadow_host")); SearchContext shadowRoot = shadowHost.getShadowRoot(); WebElement shadowContent = shadowRoot.findElement(By.cssSelector("#shadow_content")); {{< /tab >}} -{{< tab header="Python" >}} -shadow_host = driver.find_element(By.CSS_SELECTOR, '#shadow_host') -shadow_root = shadow_host.shadow_root -shadow_content = shadow_root.find_element(By.CSS_SELECTOR, '#shadow_content') +{{< tab header="Python" text=true >}} +{{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L47-L50">}} {{< /tab >}} {{< tab header="CSharp" >}} var shadowHost = _driver.FindElement(By.CssSelector("#shadow_host")); @@ -160,8 +157,8 @@ For this example, we'll use a CSS Selector: {{< tab header="Java" >}} WebElement fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruit = driver.find_element(By.CSS_SELECTOR,"#fruits .tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L34" >}} {{< /tab >}} {{< tab header="CSharp" >}} var fruit = driver.FindElement(By.CssSelector("#fruits .tomatoes")); @@ -190,8 +187,8 @@ references to all fruits and vegetable list items will be returned in a collecti {{< tab header="Java" >}} List plants = driver.findElements(By.tagName("li")); {{< /tab >}} - {{< tab header="Python" >}} -plants = driver.find_elements(By.TAG_NAME, "li") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L39" >}} {{< /tab >}} {{< tab header="CSharp" >}} IReadOnlyList plants = driver.FindElements(By.TagName("li")); @@ -221,20 +218,8 @@ for (WebElement element : elements) { System.out.println("Paragraph text:" + element.getText()); } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L62-L64" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -338,32 +323,8 @@ To achieve this, the parent WebElement is chained with 'findElements' to access } } {{< /tab >}} - {{< tab header="Python" >}} -from selenium import webdriver -from selenium.webdriver.common.by import By - -driver = webdriver.Chrome() -driver.get("https://www.example.com") -##get elements from parent element using TAG_NAME - - # 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) - -##get elements from parent element using XPATH -##NOTE: in order to utilize XPATH from current element, you must add "." to beginning of path - - # Get first element of tag 'ul' -element = driver.find_element(By.XPATH, '//ul') - - # get children of tag 'ul' with tag 'li' -elements = element.find_elements(By.XPATH, './/li') -for e in elements: - print(e.text) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L75-L78" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -465,17 +426,8 @@ It is used to track (or) find DOM element which has the focus in the current bro } } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L89-L90" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; diff --git a/website_and_docs/content/documentation/webdriver/elements/finders.ja.md b/website_and_docs/content/documentation/webdriver/elements/finders.ja.md index d339c7cae4ff..933571f9d0ea 100644 --- a/website_and_docs/content/documentation/webdriver/elements/finders.ja.md +++ b/website_and_docs/content/documentation/webdriver/elements/finders.ja.md @@ -43,8 +43,8 @@ Seleniumは、要素を一意に識別するための多数の組み込み[ロ {{< tab header="Java" >}} WebElement vegetable = driver.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -vegetable = driver.find_element(By.CLASS_NAME, "tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L23">}} {{< /tab >}} {{< tab header="CSharp" >}} var vegetable = driver.FindElement(By.ClassName("tomatoes")); @@ -73,9 +73,8 @@ DOM全体で一意のロケーターを見つけるのではなく、検索を WebElement fruits = driver.findElement(By.id("fruits")); WebElement fruit = fruits.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruits = driver.find_element(By.ID, "fruits") -fruit = fruits.find_element(By.CLASS_NAME,"tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L28-L29">}} {{< /tab >}} {{< tab header="CSharp" >}} IWebElement fruits = driver.FindElement(By.Id("fruits")); @@ -114,10 +113,8 @@ WebElement shadowHost = driver.findElement(By.cssSelector("#shadow_host")); SearchContext shadowRoot = shadowHost.getShadowRoot(); WebElement shadowContent = shadowRoot.findElement(By.cssSelector("#shadow_content")); {{< /tab >}} -{{< tab header="Python" >}} -shadow_host = driver.find_element(By.CSS_SELECTOR, '#shadow_host') -shadow_root = shadow_host.shadow_root -shadow_content = shadow_root.find_element(By.CSS_SELECTOR, '#shadow_content') +{{< tab header="Python" text=true >}} +{{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L47-L50">}} {{< /tab >}} {{< tab header="CSharp" >}} var shadowHost = _driver.FindElement(By.CssSelector("#shadow_host")); @@ -150,8 +147,8 @@ shadow_content = shadow_root.find_element(css: '#shadow_content') {{< tab header="Java" >}} WebElement fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruit = driver.find_element(By.CSS_SELECTOR,"#fruits .tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L34" >}} {{< /tab >}} {{< tab header="CSharp" >}} var fruit = driver.FindElement(By.CssSelector("#fruits .tomatoes")); @@ -179,8 +176,8 @@ val fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")) {{< tab header="Java" >}} List plants = driver.findElements(By.tagName("li")); {{< /tab >}} - {{< tab header="Python" >}} -plants = driver.find_elements(By.TAG_NAME, "li") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L39" >}} {{< /tab >}} {{< tab header="CSharp" >}} IReadOnlyList plants = driver.FindElements(By.TagName("li")); @@ -208,20 +205,8 @@ for (WebElement element : elements) { System.out.println("Paragraph text:" + element.getText()); } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L62-L64" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -324,32 +309,8 @@ fun main() { } } {{< /tab >}} - {{< tab header="Python" >}} -from selenium import webdriver -from selenium.webdriver.common.by import By - -driver = webdriver.Chrome() -driver.get("https://www.example.com") -##get elements from parent element using TAG_NAME - - # 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) - -##get elements from parent element using XPATH -##NOTE: in order to utilize XPATH from current element, you must add "." to beginning of path - - # Get first element of tag 'ul' -element = driver.find_element(By.XPATH, '//ul') - - # get children of tag 'ul' with tag 'li' -elements = element.find_elements(By.XPATH, './/li') -for e in elements: - print(e.text) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L75-L78" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -450,17 +411,8 @@ namespace FindElementsFromElement { } } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L89-L90" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; diff --git a/website_and_docs/content/documentation/webdriver/elements/finders.pt-br.md b/website_and_docs/content/documentation/webdriver/elements/finders.pt-br.md index 66add804715a..a2daa5354965 100644 --- a/website_and_docs/content/documentation/webdriver/elements/finders.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/elements/finders.pt-br.md @@ -44,8 +44,8 @@ dois elementos que têm um nome de classe de "tomatoes" então este método reto {{< tab header="Java" >}} WebElement vegetable = driver.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -vegetable = driver.find_element(By.CLASS_NAME, "tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L23">}} {{< /tab >}} {{< tab header="CSharp" >}} var vegetable = driver.FindElement(By.ClassName("tomatoes")); @@ -75,9 +75,8 @@ ancestral do elemento indesejado, então invoque o find element nesse objeto: WebElement fruits = driver.findElement(By.id("fruits")); WebElement fruit = fruits.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruits = driver.find_element(By.ID, "fruits") -fruit = fruits.find_element(By.CLASS_NAME,"tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L28-L29">}} {{< /tab >}} {{< tab header="CSharp" >}} IWebElement fruits = driver.FindElement(By.Id("fruits")); @@ -117,10 +116,8 @@ WebElement shadowHost = driver.findElement(By.cssSelector("#shadow_host")); SearchContext shadowRoot = shadowHost.getShadowRoot(); WebElement shadowContent = shadowRoot.findElement(By.cssSelector("#shadow_content")); {{< /tab >}} -{{< tab header="Python" >}} -shadow_host = driver.find_element(By.CSS_SELECTOR, '#shadow_host') -shadow_root = shadow_host.shadow_root -shadow_content = shadow_root.find_element(By.CSS_SELECTOR, '#shadow_content') +{{< tab header="Python" text=true >}} +{{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L47-L50">}} {{< /tab >}} {{< tab header="CSharp" >}} var shadowHost = _driver.FindElement(By.CssSelector("#shadow_host")); @@ -154,8 +151,8 @@ Para esse exemplo, utilizaremos o CSS Selector: {{< tab header="Java" >}} WebElement fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruit = driver.find_element(By.CSS_SELECTOR,"#fruits .tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L34" >}} {{< /tab >}} {{< tab header="CSharp" >}} var fruit = driver.FindElement(By.CssSelector("#fruits .tomatoes")); @@ -182,8 +179,8 @@ referências a todos os itens da lista de frutas e vegetais serão devolvidas em {{< tab header="Java" >}} List plants = driver.findElements(By.tagName("li")); {{< /tab >}} - {{< tab header="Python" >}} -plants = driver.find_elements(By.TAG_NAME, "li") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L39" >}} {{< /tab >}} {{< tab header="CSharp" >}} IReadOnlyList plants = driver.FindElements(By.TagName("li")); @@ -212,20 +209,8 @@ for (WebElement element : elements) { System.out.println("Paragraph text:" + element.getText()); } {{< /tab >}} - {{< tab header="Python" >}} -from selenium import webdriver -from selenium.webdriver.common.by import By - -driver = webdriver.Firefox() - - # Navegar até a URL -driver.get("https://www.example.com") - - # Obtém todos os elementos disponiveis com o nome da tag 'p' -elements = driver.find_elements(By.TAG_NAME, 'p') - -for e in elements: - print(e.text) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L62-L64" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -328,27 +313,8 @@ Para realizar isso, o WebElement pai é encadeado com o 'findElements' para aces } } {{< /tab >}} - {{< tab header="Python" >}} -##get elements from parent element using TAG_NAME - - # Obtém o elemento com o nome da tag 'div' -element = driver.find_element(By.TAG_NAME, 'div') - - # Obtém todos os elementos disponíveis com o nome da tag 'p' -elements = element.find_elements(By.TAG_NAME, 'p') -for e in elements: - print(e.text) - -##get elements from parent element using XPATH -##NOTE: in order to utilize XPATH from current element, you must add "." to beginning of path - - # Get first element of tag 'ul' -element = driver.find_element(By.XPATH, '//ul') - - # get children of tag 'ul' with tag 'li' -elements = element.find_elements(By.XPATH, './/li') -for e in elements: - print(e.text) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L75-L78" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -449,17 +415,8 @@ Ele é usado para rastrear (ou) encontrar um elemento DOM que tem o foco no cont } } {{< /tab >}} - {{< tab header="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") - - # Obter atributo do elemento atualmente ativo - attr = driver.switch_to.active_element.get_attribute("title") - print(attr) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L89-L90" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; diff --git a/website_and_docs/content/documentation/webdriver/elements/finders.zh-cn.md b/website_and_docs/content/documentation/webdriver/elements/finders.zh-cn.md index 2fbc24ad4c0b..1633e2742cf3 100644 --- a/website_and_docs/content/documentation/webdriver/elements/finders.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/elements/finders.zh-cn.md @@ -46,8 +46,8 @@ Selenium 提供了许多内置的 [定位策略]({{< ref "locators.md" >}}), {{< tab header="Java" >}} WebElement vegetable = driver.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -vegetable = driver.find_element(By.CLASS_NAME, "tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L23">}} {{< /tab >}} {{< tab header="CSharp" >}} var vegetable = driver.FindElement(By.ClassName("tomatoes")); @@ -81,9 +81,8 @@ val vegetable: WebElement = driver.findElement(By.className("tomatoes")) WebElement fruits = driver.findElement(By.id("fruits")); WebElement fruit = fruits.findElement(By.className("tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruits = driver.find_element(By.ID, "fruits") -fruit = fruits.find_element(By.CLASS_NAME,"tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L28-L29">}} {{< /tab >}} {{< tab header="CSharp" >}} IWebElement fruits = driver.FindElement(By.Id("fruits")); @@ -121,10 +120,8 @@ WebElement shadowHost = driver.findElement(By.cssSelector("#shadow_host")); SearchContext shadowRoot = shadowHost.getShadowRoot(); WebElement shadowContent = shadowRoot.findElement(By.cssSelector("#shadow_content")); {{< /tab >}} -{{< tab header="Python" >}} -shadow_host = driver.find_element(By.CSS_SELECTOR, '#shadow_host') -shadow_root = shadow_host.shadow_root -shadow_content = shadow_root.find_element(By.CSS_SELECTOR, '#shadow_content') +{{< tab header="Python" text=true >}} +{{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L47-L50">}} {{< /tab >}} {{< tab header="CSharp" >}} var shadowHost = _driver.FindElement(By.CssSelector("#shadow_host")); @@ -159,8 +156,8 @@ shadow_content = shadow_root.find_element(css: '#shadow_content') {{< tab header="Java" >}} WebElement fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")); {{< /tab >}} - {{< tab header="Python" >}} -fruit = driver.find_element(By.CSS_SELECTOR,"#fruits .tomatoes") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L34" >}} {{< /tab >}} {{< tab header="CSharp" >}} var fruit = driver.FindElement(By.CssSelector("#fruits .tomatoes")); @@ -188,8 +185,8 @@ val fruit = driver.findElement(By.cssSelector("#fruits .tomatoes")) {{< tab header="Java" >}} List plants = driver.findElements(By.tagName("li")); {{< /tab >}} - {{< tab header="Python" >}} -plants = driver.find_elements(By.TAG_NAME, "li") + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L39" >}} {{< /tab >}} {{< tab header="CSharp" >}} IReadOnlyList plants = driver.FindElements(By.TagName("li")); @@ -218,20 +215,8 @@ for (WebElement element : elements) { System.out.println("Paragraph text:" + element.getText()); } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L62-L64" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -334,32 +319,8 @@ fun main() { } } {{< /tab >}} - {{< tab header="Python" >}} -from selenium import webdriver -from selenium.webdriver.common.by import By - -driver = webdriver.Chrome() -driver.get("https://www.example.com") -##get elements from parent element using TAG_NAME - - # 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) - -##get elements from parent element using XPATH -##NOTE: in order to utilize XPATH from current element, you must add "." to beginning of path - - # Get first element of tag 'ul' -element = driver.find_element(By.XPATH, '//ul') - - # get children of tag 'ul' with tag 'li' -elements = element.find_elements(By.XPATH, './/li') -for e in elements: - print(e.text) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L75-L78" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium; @@ -460,17 +421,8 @@ namespace FindElementsFromElement { } } {{< /tab >}} - {{< tab header="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) + {{< tab header="Python" text=true >}} + {{< gh-codeblock path="/examples/python/tests/elements/test_finders.py#L89-L90" >}} {{< /tab >}} {{< tab header="CSharp" >}} using OpenQA.Selenium;