получить значение <param>в <object>с драйвером селена IE - PullRequest
0 голосов
/ 07 марта 2020

html как показано ниже:

<OBJECT id="IndiDocX" CODEBASE="/IndiDoc.CAB#version=4,5,0,132" width=500 height=201 VIEWASTEXT>
.........
<PARAM NAME="IDNUM" VALUE="4090">
<PARAM NAME="Editable" VALUE="false">
<PARAM NAME="Nodelfiles" VALUE="\adad.xlsx\1111.sep\2222.gw">

Я хочу получить значение PARAM[@name="Nodelfiles"] с xpath в IE драйвер мой код:

attr = driver.find_element_by_xpath('//object[@id="IndiDocX"]/param[@name="Nodelfiles"]').get_attribute('value')

сообщение:

Traceback (most recent call last):
  File "e:\Dropbox\17.Develop\5.Projects\auto.oa\main.py", line 158, in <module>
    main()
  File "e:\Dropbox\17.Develop\5.Projects\auto.oa\main.py", line 154, in main
    insert_to_db('DC5EF2F7F4DB79E648258523002C628E')
  File "e:\Dropbox\17.Develop\5.Projects\auto.oa\main.py", line 138, in insert_to_db
    attr = driver.find_element_by_xpath(
  File "C:\Users\A\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 139, in get_attribute
    attributeValue = self.parent.execute_script(
  File "C:\Users\A\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 634, in execute_script
    return self.execute(command, {
  File "C:\Users\A\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\A\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: Error executing JavaScript

Как получить значение, которое я использую, это можно получить по индексу, но не по имени

js = 'return document.getElementById("IndiDocX").getElementsByTagName("PARAM")[24].getAttribute("value");'
attr = driver.execute_script(js)
print(attr)

24 - это индекс

1 Ответ

1 голос
/ 20 марта 2020

используйте diriver.page_souce для получения HTML , и пользователя re.findall () для сопоставления данных

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