Мне нужна помощь во взаимодействии с элементом HTML с использованием Python Selenium - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь использовать Python Selenium для нажатия на HTML веб-элемент, используя Inte rnet Explorer 11, не могу использовать XPATH.

Вот код, который я использую:

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time

manage = driver.find_element_by_id("__tab_ctl00_PageBody,
_TabContainer1_Managetab")

manage.click()

А вот HTML, с которым я пытаюсь взаимодействовать:

<SPAN id=__tab_ctl00_PageBody_TabContainer1_Managetab 
class=ajax__tab_tab>Manage</SPAN>

I ' получаю NoSuchElementException.

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Основная проблема в том, что ваш идентификатор локатора неверен (запятая и пробел - виновник). В CSS запятая имеет свое собственное значение. Таким образом, ваш идентификатор должен быть

__tab_ctl00_PageBody_TabContainer1_Managetab

Снимок экрана: enter image description here

Пожалуйста, отметьте здесь , чтобы увидеть, как вы можете проверить локатор, если он работает правильно. Всегда используйте Explicit wait, а не stati c wait (sleep), как показано ниже, при этом сценарий перейдет к следующим шагам, когда элемент встретит условие.

Необходимые импорты:

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

Ваш код должен быть (здесь мы ожидаем элемента максимум 30 секунд).

manage = WebDriverWait(driver,30).until(EC.presence_of_element_located((By.ID,'__tab_ctl00_PageBody_TabContainer1_Managetab')))
0 голосов
/ 31 марта 2020

Попробуйте добавить time time.leep (3), прежде чем управлять и исправить свой элемент.

time.sleep(3)
manage = driver.find_element_by_id("__tab_ctl00_PageBody_TabContainer1_Managetab")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...