Невозможно получить доступ к элементу на сайте в Selenium - PullRequest
0 голосов
/ 11 июня 2019

Я хочу менять страницы как одну за другой, но не могу получить доступ к элементу.http://prntscr.com/o0f4mx Я попробовал все, но не сработало.Пожалуйста, мне нужна помощь.

XPath = //*[@id="___gcse_0"]/div/div/div/div[5]/div[2]/div/div/div[2]/div[10]/div/div[2]

код:

tab2 = browser.find_element_by_xpath('//*[@id="___gcse_0"]/div/div/div/div[5]/div[2]/div/div/div[2]/div[10]/div/div[2]')
tab2.click()

И вот ошибка, которую я получаю:

Traceback (последний вызов последний):Файл "C: / Users / ......", строка 38, в tab2 = browser.find_element_by_xpath ('// [@ id = "___ gcse_0"] / div / div / div / div [5]/ div [2] / div / div / div [2] / div [10] / div / div [2] ') Файл "C: \ Users .... \ AppData \ Local \ Programs \ Python \ Python37-32\ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 394, в find_element_by_xpath вернуть self.find_element (by = By.XPATH, value = xpath) Файл" C: \ Users ... \ AppData \Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 978, в find_element 'value': value}) ['value'] Файл" C: \ Users... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 321, в исполняемом файле self.error_handler.check_response (response) (response)" C:\ Users .... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_response поднять исключение_класса (сообщение, экран, stacktrace) selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "// [@ ID = "___ gcse_0"] / дел / дела / дела / дела [5] / дела [2] / дела / дела / дела [2] / дела [10] / дела / дела [2] "}

Обновление - правильный элемент Correct Element

1 Ответ

0 голосов
/ 11 июня 2019

Используйте WebdriverWait и element_to_be_clickable и следующий xpath для обработки динамического элемента.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='gsc-cursor']//div[@class='gsc-cursor-page'][contains(.,'2')]")))
element.click()

Если приведенный выше код не нажимает на элемент, попробуйте JS executor, чтобы нажать на элемент.

element=WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//div[@class='gsc-cursor']//div[@class='gsc-cursor-page'][contains(.,'2')]")))
driver.execute_script("arguments[0].click();",element)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...