我正在使用 Selenium Webdriver for python,目前在 Chrome 浏览器上使用,并且我一直陷入这种特定库的奇怪情况。我想在 Pipedrive 中提取一些信息(当前能够登录并搜索网页内的特定线索,但是当我尝试提取人名时出现此异常:
Traceback (most recent call last):
File "C:/Users/ppbbd/PycharmProjects/fastTasks/pipeforwpp.py", line 27, in <module>
info_box = driver.find_element_by_xpath("//div[@class='widget personFields fieldsView '][@data-state='read']")
File "C:\Users\ppbbd\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\ppbbd\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\ppbbd\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\ppbbd\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='widget personFields fieldsView '][@data-state='read']"}
(Session info: chrome=80.0.3987.149)
我搜索了这个异常,主要原因之一是动态页面和页面中元素的加载时间并不全部同时,所以我只是用来测试time.sleep(10)是否是这种情况,但我仍然收到上面显示的错误。
重要提示:这是 html 的一个片段,如果您查看代码末尾,您会发现注释 info_box_a = driver.find_element_by_xpath("//div[@class='fieldsList read']")
工作正常,并且正如您在图像中看到的那样,这个特定的 div 位于有问题的 div 内,所以 Selenium 怎么可能无法找到父级但其子级? HTML 片段
页面来源:我无法将其发布在这里,因为它会绕过 30k 字符限制,并且源页面位于登录区域内,因此即使我发布网址,除非您在 Pipedrive 上有帐户,您也看不到页面源(如果我错了请纠正我)。任何显示另一个 html 片段的建议我可以更新问题。
更新:
正如您在下面的链接中看到的,一个人的电话类别值的具体信息class="item read
phoneField editable
"上有这么多空格,这是否会妨碍查找该元素?或者class="item read phoneField editable"意思完全一样吗?
开满天机
相关分类