【发布时间】:2017-09-12 14:00:18
【问题描述】:
<div class="t-window-content t-content" style="overflow: auto; width: 400px; height: 389.4px;">
<div id="frmSchTarget">
<form action="/Search/SearchTypePreName"
method="post" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));"
onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, onBegin: Function.createDelegate(this, PreNameListWindow), onSuccess: Function.createDelegate(this, Form_OnSuccess) });"><input type="hidden" id="NameList"
name="NameList">
<div style="text-align: left; padding-left: 10px">
<span style="margin-right: 20px;">
<button id="TreeViewButtonCollapse" name="TreeViewButtonCollapse" onclick="ExpandCollapseTreeView('NameListTreeView', false); return false;" title="Collapse All">
<img src="/Content/Images/toggle_up.png">
</button>
<button id="TreeViewButtonExpand" name="TreeViewButtonExpand" onclick="ExpandCollapseTreeView('NameListTreeView', true); return false;" title="Expand All">
<img src="/Content/Images/toggle_down.png">
</button>
</span>
</div>
<div id="divSelectNamesArea" style="height: 325px; overflow: auto;">
"i removed a very large list from here"
</div>
<hr class="PopupLineStyle">
<div style="text-align: left; padding-left: 10px">
<span style="margin-right: 20px;"><input type="checkbox" id="Checkbox1" name="SelectAllPrenamesToggle" onclick="SelectAllOrNoneInTreeView('NameListTreeView', this.checked);">
All / None</span>
<input type="submit" class="t-button" value="Done"
onclick="GetNameListString('NameListTreeView');">
</div>
</form>
</div>
</div>
上面的代码基本上已经困扰我大约一个星期了。我正在尝试运行 webscraper,并在提交请求后,页面上会出现一个 div 覆盖。上面的代码 sn-p 显示了用于摆脱它的“完成”按钮是如何实现的。
在测试中我可以使用
buttons = driver.find_elements_by_xpath('//input[contains(@class,"t-button")]')
要找到所有存在的按钮,然后是按钮 [5],但是一旦我自动化它就不起作用了。
我还尝试使用以下 xpath 进行隐式等待:
//*[@id="frmSchTarget"]/form/div[3]/input
这也是不行的。请帮忙,我已经尝试了一个多星期以来通过stackoverflow搜索的所有内容。我就是想不通。
【问题讨论】:
-
没有什么会突然出现在我身上,需要隐式等待。可以提供网址吗?
-
尝试更具体的选择器。一个有用的特性是 Chrome 的 CSS 选择器生成器。在 Chrome Inspector 中,右键单击所需的元素 >> 复制 >> 复制选择器