Browse Source

using newer selenum find_by syntax

Rodja Trappe 2 years ago
parent
commit
17ebfc16b6
2 changed files with 10 additions and 8 deletions
  1. 4 3
      tests/screen.py
  2. 6 5
      tests/test_element.py

+ 4 - 3
tests/screen.py

@@ -7,6 +7,7 @@ from bs4 import BeautifulSoup
 from nicegui import globals, ui
 from selenium import webdriver
 from selenium.common.exceptions import NoSuchElementException
+from selenium.webdriver.common.by import By
 from selenium.webdriver.remote.webelement import WebElement
 
 PORT = 3392
@@ -60,12 +61,12 @@ class Screen():
 
     def find(self, text: str) -> WebElement:
         try:
-            return self.selenium.find_element_by_xpath(f'//*[contains(text(),"{text}")]')
+            return self.selenium.find_element(By.XPATH, f'//*[contains(text(),"{text}")]')
         except NoSuchElementException:
             raise AssertionError(f'Could not find "{text}" on:\n{self.render_content()}')
 
     def render_content(self, with_extras: bool = False) -> str:
-        body = self.selenium.find_element_by_tag_name('body').get_attribute('innerHTML')
+        body = self.selenium.find_element(By.TAG_NAME, 'body').get_attribute('innerHTML')
         soup = BeautifulSoup(body, 'html.parser')
         self.simplify_input_tags(soup)
         content = ''
@@ -108,7 +109,7 @@ class Screen():
             element.replace_with(new)
 
     def get_tags(self, name: str) -> List[WebElement]:
-        return self.selenium.find_elements_by_tag_name(name)
+        return self.selenium.find_elements(By.TAG_NAME, name)
 
     def get_attributes(self, tag: str, attribute: str) -> List[str]:
         return [t.get_attribute(attribute) for t in self.get_tags(tag)]

+ 6 - 5
tests/test_element.py

@@ -1,6 +1,7 @@
 
 from nicegui import ui
 from selenium.webdriver.common.action_chains import ActionChains
+from selenium.webdriver.common.by import By
 
 from .screen import Screen
 
@@ -11,7 +12,7 @@ def test_keyboard(screen: Screen):
 
     screen.open('/')
     assert any(s.endswith('keyboard.js') for s in screen.get_attributes('script', 'src'))
-    assert screen.selenium.find_element_by_tag_name('span')  # NOTE keyboard dom element is a span
+    assert screen.get_tags('span')  # NOTE keyboard dom element is a span
     ActionChains(screen.selenium).send_keys('t').perform()
     screen.should_contain('t, KeyboardAction(keydown=False, keyup=True, repeat=False)')
 
@@ -20,8 +21,8 @@ def test_classes(screen: Screen):
     label = ui.label('Some label')
 
     def assert_classes(classes: str) -> None:
-        assert screen.selenium.find_element_by_xpath(
-            f'//*[normalize-space(@class)="{classes}" and text()="Some label"]')
+        assert screen.selenium.find_element(By.XPATH,
+                                            f'//*[normalize-space(@class)="{classes}" and text()="Some label"]')
 
     screen.open('/')
     assert_classes('')
@@ -46,7 +47,7 @@ def test_style(screen: Screen):
     label = ui.label('Some label')
 
     def assert_style(style: str) -> None:
-        assert screen.selenium.find_element_by_xpath(f'//*[normalize-space(@style)="{style}" and text()="Some label"]')
+        assert screen.selenium.find_element(By.XPATH, f'//*[normalize-space(@style)="{style}" and text()="Some label"]')
 
     screen.open('/')
     assert_style('')
@@ -78,7 +79,7 @@ def test_props(screen: Screen):
 
     def assert_props(*props: str) -> None:
         class_conditions = [f'contains(@class, "q-field--{prop}")' for prop in props]
-        assert screen.selenium.find_element_by_xpath(f'//label[{" and ".join(class_conditions)}]')
+        assert screen.selenium.find_element(By.XPATH, f'//label[{" and ".join(class_conditions)}]')
 
     screen.open('/')
     assert_props('standard', 'labeled')