Files
HM_project_Viewer_Board/scripts/test_selenium_left_click_9225.py
T

34 lines
1.3 KiB
Python

import json
import os
import sys
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
target = sys.argv[1] if len(sys.argv) > 1 else "110"
options = Options()
options.add_experimental_option("debuggerAddress", os.environ.get("WEHAGO_CHROME_DEBUGGER_ADDRESS", "127.0.0.1:9225"))
driver = webdriver.Chrome(options=options)
clicked = None
for el in driver.find_elements(By.XPATH, f"//*[normalize-space(.)='{target}']"):
if not el.is_displayed():
continue
r = driver.execute_script("const r=arguments[0].getBoundingClientRect(); return {left:r.left, top:r.top, width:r.width, height:r.height};", el)
if r["left"] < 220 and r["top"] > 145 and r["width"] > 0 and r["height"] > 0:
clicked = r
try:
el.click()
except Exception:
ActionChains(driver).move_to_element(el).click(el).perform()
break
time.sleep(1.0)
right = driver.execute_script("const b=Array.from(document.querySelectorAll('.rg-body')).find(el=>String(el.$_view)==='327'); return b ? (b.textContent||'').slice(0,500) : '';")
print(json.dumps({"clicked": clicked, "right": right}, ensure_ascii=False, indent=2))
driver.quit()