Skip to content

Commit ec2ce45

Browse files
committed
tests: more fixes
1 parent bbc8763 commit ec2ce45

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

tests/test_interface.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ def driver():
6060
options.add_argument("--enable-automation")
6161
options.add_argument("--no-sandbox")
6262
options.add_argument("--disable-dev-shm-usage")
63-
options.add_argument("--start-maximized")
6463
driver = CustomDriver(options=options)
6564
driver.set_page_load_timeout(10)
6665
driver.set_window_size(1920, 1080)
66+
driver.maximize_window()
6767
yield driver
6868
driver.quit()
6969

@@ -248,7 +248,7 @@ def test_selection_check_uncheck_invert(driver: CustomDriver, html_doc):
248248

249249
@pytest.mark.parametrize("prerender", [True, False])
250250
def test_image_size(driver: CustomDriver, df, prerender):
251-
size = expected_size = (200, 300)
251+
size = expected_size = (220, 200)
252252
grid = get_grid(df, size=size, prerender=prerender)
253253
doc = get_doc(
254254
grid,
@@ -483,8 +483,8 @@ def test_style(driver: CustomDriver, grid):
483483
assert el.value_of_css_property("color") == "rgba(255, 0, 0, 1)"
484484
el = driver.find_by_css_selector(".m2g-cell .data-_Name")
485485
assert el.value_of_css_property("color") == "rgba(0, 0, 255, 1)"
486-
ActionChains(driver).click(driver.find_by_css_selector(".m2g-info")).perform()
487-
el = driver.find_by_css_selector("div.m2g-popover span")
486+
tooltip = driver.find_tooltip()
487+
el = tooltip.find_element(By.TAG_NAME, "span")
488488
assert el.value_of_css_property("color") == "rgba(0, 0, 255, 1)"
489489

490490

@@ -713,7 +713,7 @@ def test_static_template(driver: CustomDriver, sdf_path):
713713
el = driver.find_by_css_selector("td.col-0")
714714
assert el.find_element(By.CLASS_NAME, "data-mols2grid-id").text == "8"
715715
tooltip = driver.get_tooltip_content(
716-
selector=".m2g-cell-0", content_selector="div.popover-body"
716+
trigger_selector=".m2g-cell-0", tooltip_selector="div.popover-body"
717717
)[:-1]
718718
assert tooltip == [
719719
["strong", ["_Name"]],

tests/webdriver_utils.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def __call__(self, driver):
3535

3636

3737
class CustomDriver(webdriver.Chrome):
38-
def wait_for_img_load(self, max_delay=30, selector=".m2g-cell .data-img svg"):
38+
def wait_for_img_load(self, max_delay=30, selector=".m2g-cell .data-img svg rect"):
3939
return WebDriverWait(self, max_delay).until(
4040
EC.presence_of_element_located((By.CSS_SELECTOR, selector))
4141
)
@@ -135,21 +135,34 @@ def _tree_to_list(cls, nodes: NodeList[minidom.Node | minidom.Text], data: list)
135135
branch.append(subbranch)
136136
cls._tree_to_list(node.childNodes, subbranch)
137137

138-
def get_tooltip_content(
139-
self, selector=".m2g-cell .m2g-info", content_selector="div.m2g-popover"
140-
):
141-
ActionChains(self).click(self.find_by_css_selector(selector)).perform()
142-
tooltip = self.find_by_css_selector(content_selector)
138+
def get_tooltip_content(self, **kwargs):
139+
tooltip = self.find_tooltip(**kwargs)
143140
content = tooltip.get_attribute("innerHTML")
144141
doc = minidom.parseString(f"<body>{content}</body>")
145142
data = []
146143
self._tree_to_list(doc.childNodes[0].childNodes, data)
147144
return data
148145

146+
def find_tooltip(
147+
self,
148+
trigger_selector=".m2g-cell .m2g-info",
149+
tooltip_selector="div.m2g-popover",
150+
pause=0.2,
151+
):
152+
el = self.find_clickable(By.CSS_SELECTOR, trigger_selector)
153+
ActionChains(self).move_to_element(el).pause(pause).click().perform()
154+
# selenium is a bit flaky with move_to_element,
155+
# best to trigger through JS as well
156+
self.execute_script(
157+
'var hover = new Event("mouseenter"); '
158+
f'document.querySelector("{trigger_selector}").dispatchEvent(hover);'
159+
)
160+
return self.find_by_css_selector(tooltip_selector)
161+
149162
def trigger_callback(self, selector=".m2g-cell .m2g-callback", pause=0.2):
150163
self.wait_for_img_load()
151164
el = self.find_clickable(By.CSS_SELECTOR, selector)
152-
(ActionChains(self).move_to_element(el).pause(pause).click().perform())
165+
ActionChains(self).move_to_element(el).pause(pause).click().perform()
153166

154167
def click_checkbox(self, is_empty=False):
155168
self.find_clickable(By.CSS_SELECTOR, ".m2g-cb").click()

0 commit comments

Comments
 (0)