Смещение щелчков селена с помощью Python?

#python #selenium

#python #селен

Вопрос:

В настоящее время я заставляю selenium найти xpath и щелкнуть по нему. Однако поверх элемента есть еще одно изображение, поэтому мне нужно будет щелкнуть немного выше или ниже. Есть ли способ сделать это с помощью python? (Я запускаю его в простом программном обеспечении для иллюстрации. И мне просто нужно выбрать фон)

 element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, """myxpath"""))).click()
  

Ошибка: не доступен для просмотра в точке (815, 406). Другой элемент получит щелчок:

Итак, вместо щелчка (815 406), я хотел бы, чтобы система щелкнула (200 200).

Ответ №1:

Вы можете сделать это с помощью ActionChains . Вам нужно импортировать

 from selenium.webdriver.common.action_chains import ActionChains
  

Затем вы можете использовать следующий метод

 def click_element_with_offset(self, xpath : str, xAxis : int, yAxis: int):
        actionChain = ActionChains(self.driver)
        element = self.driver.find_element(By.XPATH, xpath)
        actionChain.move_to_element_with_offset(element, xAxis, yAxis).click().perform()
  

Ответ №2:

Элемент накладывается попробуйте что-то подобное, чтобы напрямую щелкнуть по элементу.

 element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, """myxpath""")))
driver.execute_script("arguments[0].click();", element)