更新:解决了这个问题。如果我在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
.
.
.
答案 0 :(得分:0)
尝试使用textContent
。
print(browser.find_element_by_id("root").get_attribute('textContent'))
答案 1 :(得分:0)
更新:解决了这个问题。如果我在Server 2012实例上以管理员身份运行脚本,则它将正常运行。从昨天到今天之间,服务器上的某些内容必须已更改,从而更改了一些权限。