Python как щелкнуть по нескольким подкатегориям, получить эту ошибку. "> ... </a> не активна в точке (555, 55). Другой элемент получит щелчок - PullRequest
1 голос
/ 11 апреля 2020

у меня есть селен, чтобы запустить и нажать 2 подкатегории через X PATH, которые уже являются кнопками, и теперь я снова получаю сообщение об ошибке выше здесь -

ole = "button"> ... is не кликабельны в точке (555, 55). Другой элемент получит щелчок: ... (Информация о сеансе: chrome = 80.0.3987.163)

мой код выглядит следующим образом

"# Больше страниц подкатегорий Faq. sleep (3)

WaysToWatch = driver.find_element_by_xpath ('// * [@ id = "main"] / div / div / section / div / div [2] / a')

WaysToWatch.click ()

"# Set-pin - ЭТОТ ОН НЕ ХОЧЕТ РАБОТАТЬ

time.sleep (5)

SetPin = driver.find_element_by_xpath ('// * [@ id = "main"] / div / div / section / div / div [3] / a')

SetPin.click ()

Буду признателен за исправление, так как у меня немало таких, которые мне нужно пройти через

Ответы [ 3 ]

0 голосов
/ 11 апреля 2020

Пожалуйста, найдите ответ ниже, используя javascript клик, или вы также можете попробовать с ActcionChains

          element = WebDriverWait(driver, 30).until(
                EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))
          driver.execute_script("arguments[0].click();", element)

или

element = WebDriverWait(driver, 30).until(
                    EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))     

ActcionChains(driver).move_to_element(element).click().perform()

Примечание: добавить ниже импорт в ваше решение

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
0 голосов
/ 16 апреля 2020

driver.find_element_by_tag_name ('body'). Send_keys (Keys.HOME)

Используйте send_keys (Keys.HOME) для прокрутки вверх до верхней части страницы

0 голосов
/ 11 апреля 2020

Вы можете использовать javascript, чтобы нажать кнопку:

SetPin = driver.find_element_by_xpath('//*[@id="main"]/div/div/section/div/div[3]/a')

script = 'arguments[0].click();'

driver.execute_script(script , SetPin)

Это позволит вам щелкнуть элемент, даже если другой находится перед ним, но он не имитирует фактический пользовательский опыт. из-за этого. Иногда вам может потребоваться ошибка, показывающая, что другой элемент получит щелчок.

Кроме того, рекомендуется использовать ожидания, чтобы предотвратить проблемы с взаимодействием с элементами, прежде чем они станут доступны. Вы можете сделать это с:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)

locator = '//*[@id="main"]/div/div/section/div/div[3]/a'

SetPin = wait.until(EC.presence_of_element_located(By.XPATH, locator))

script = 'arguments[0].click();'

driver.execute_script(script , SetPin)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...