嘿!你知道吗
我不得不使用Selenium从公司网站下载一个文件,最后一步遇到了问题:
当我在站点上按Ctrl+U时,代码只包含基本标记,如和一些空标记:
<div ng-show="viewContainer === 'PUC'"
class="ng-app-element deny-animation-change" animate="fade"
id="pucWrapper" cellspacing="0" cellpadding="0" style="width: 100%; height: 100%;">
<div id="pucHeader" cellspacing="0" cellpadding="0">
<div id="pucMenuBar"></div>
<div id="pucPerspectives"></div>
<div id="pucToolBar"></div>
<div id="pucUserDropDown"></div>
</div>
<div id="pucContent"></div>
</div>
但是当我用chromedev工具选择并检查一个元素时
它说在<div id="pucContent">
中有许多标记,如何通过Selenium找到一个“不可见的”<select>
标记?你知道吗
下面的代码返回NoSuchElementException
WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.ID, 'pucContent'))).find_element_by_tag_name('select')
我猜javascript会创建新的标记和<div id="pucContent">
标记中的所有内容
我的猜测是
<div id="pucContent"></div>
在开头,在页面加载后填充。所以你真正需要等待的是内在的东西。如果检查时该元素中有<select>
,请尝试如下等待:请记住,网页的“页面源”只是请求文档时传递的内容,它不会包含加载原始文档后动态加载的任何内容。你知道吗
相关问题 更多 >
编程相关推荐