Как найти идентификатор в сложном html коде, используя веб-драйвер Python? - PullRequest
0 голосов
/ 31 марта 2020

В этом сложном html коде я хотел бы найти id = "workContentWrapper", используя веб-драйвер Python.

image

Я написал эти несколько строк в Python кода все же просто:

from selenium import webdriver
from selenium.webdriver.ie.options import Options
from selenium.webdriver.common.action_chains import ActionChains
import time

ie_options = Options()
ie_options.ignore_protected_mode_settings = True
ie_options.ensure_clean_session = True

browser = webdriver.Ie(options=ie_options)
browser.implicitly_wait(10)
action = ActionChains(browser)

browser.get('http://xxxxxxxxx')
# Auto authentification
browser.find_element_by_id("spanLinkActiver").click()

#Click on tab "Forecasting and Scheduling"
browser.find_element_by_xpath("//a[contains(text(),'Forecasting and Scheduling')]").click()
browser.find_element_by_id("workPaneWrapper")
browser.find_element_by_id("workContentWrapper")

time.sleep(10)

browser.close()

Во время выполнения у меня возникает следующая ошибка, в то время как предыдущий идентификатор "workPaneWrapper" правильно найден:

Traceback (most recent call last):
  File ".\ConnectToOpoci.py", line 26, in <module>
    browser.find_element_by_id('workContentWrapper')
  File "C:\Applications\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Applications\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Applications\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Applications\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with css selector == [id="workContentWrapper"]

Не могли бы вы помочь мне понять, почему это не так работа?

Заранее спасибо за помощь

1 Ответ

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

Это действительно решение. Я использовал команду, чтобы изменить кадр:

browser.switch_to.frame('oLeftPaneContent')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...