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:
+#
+#
+# - …
+#
- …
+#
- Tomato is a Vegetable…
+#
+#
+# - …
+#
- …
+#
- Tomato is a Fruit…
+#
+
+
+@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;