Обновление: понял это. Если я запускаю сценарий от имени администратора на экземпляре Server 2012, он работает. Со вчерашнего дня до сегодняшнего дня на сервере должно было что-то измениться, что изменило некоторые разрешения.
При использовании селена я не могу включить нужный мне элемент в Windows Server 2012. Я просто получаю «Нет». Если я пытаюсь получить доступ к элементу, который не существует, я получаю соответствующее NoSuchElementException, так что, похоже, он его находит.
До вчерашнего дня все работало нормально и почему-то остановилось сегодня. Код также отлично работает, когда я запускаю его в Windows 10.
Я использую тот же iedriver с общего диска, так что это не так.
Вот HTML-код. Ничего не меняется до или после того, как я позвоню.
<div id="root">some text</div>
print(browser.find_element_by_id("root"))
None
print(browser.find_element_by_id("root").text)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
browser.find_element_by_id("root").print
AttributeError: 'NoneType' object has no attribute 'text'
Если я сделаю тот же вызов для несуществующего элемента, то получу ожидаемое не найденное исключение.
print(browser.find_element_by_id("none"))
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
print(browser.find_element_by_id("none"))
File "C:\Users\A1B4CZZ\AppData\Local\Programs\Python\Python37-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:\Users\A1B4CZZ\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\A1B4CZZ\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\A1B4CZZ\AppData\Local\Programs\Python\Python37-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="none"]
Еще одно обновление, чтобы добавить к этому. Если я выберу все элементы на странице, я получу их возвращенные, но они будут ВСЕМИ, когда я их распечатаю:
>>> elems = browser.find_elements_by_xpath('//*')
>>> print(len(elems))
8559
>>> for elem in elems:
print(elem)
None
None
None
None
None
None
None
None
None
None
None
None
.
.
.