#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)