我尝试用SeleniumPython构建一个搜索网页的数据抓取器,搜索页面包含一个dojoComboBox,允许你从下拉列表中选择一个名字。
下面是dojoComboBox的HTML代码:
<span _="whitespace and CR's between tags adds in FF" class="dojoComboBoxOuter dj_khtml dj_safari dropSel" style="null">
<input style="display:none" tabindex="-1" name="txtCaseName" value="" dojoattachpoint="comboBoxValue">
<input style="display:none" tabindex="-1" name="txtCaseName_selected" value="" dojoattachpoint="comboBoxSelectionValue">
<input type="text" autocomplete="off" class="dojoComboBox dropSel" dojoattachevent="key:_handleKeyEvents; keyUp: onKeyUp; compositionEnd; onResize;" dojoattachpoint="textInputNode" style="null">
<img hspace="0" vspace="0" class="dojoComboBox dropSel" dojoattachpoint="downArrowNode" dojoattachevent="onMouseUp: handleArrowClick; onResize;" src="dojo/src/widget/templates/images/combo_box_arrow.png" style="width: 13px; height: 13px;">
</span>
我可以使用以下代码打开DojoComboBox滚动菜单:
dropdown = browser.find_element_by_css_selector("img.dojoComboBox")
dropdown.click()
然而,我似乎找不到一种方法来实际选择其中一个值。
更新:我上面发布的HTML来自我检查元素时打开的页面(Chrome DevTools "元素“标签下的HTML)。我一直在查看”源代码“标签下找到的其他一些文件,我在一个名为main.aspx?e= nauqov 2blnhlnh 45 eseztnao的页面中找到了一些代码,看起来也与DojoComboBox相关:
<select name="txtCaseName" id="txtCaseName" class="dropSel"dojotype="ComboBox"
setSelectedValue="dojo.byId('txtCaseName1').value=arguments[0]"
autocomplete="true" dataurl="CaseCode.aspx?match=%{searchString}&lang=e"
mode="remote" maxlistlength="7">
</select>
然而,这两种方法似乎都没有对我可以选择的选项进行编码。我想,这些选项可能会存储在上面HTML中标记为“dataurl”的url中,但当我将该链接复制到地址栏中时,它并没有将我带到一个有效的网页。从我在Dojo文档中找到的内容来看,这些选项似乎应该存储在一个单独的文件/数据库中。但我找不到任何关于如何访问该文件的建议。
有什么建议吗?(谢谢!)
1条答案
按热度按时间rjee0c151#
你必须将每个选项存储在一个列表中。2然后根据一些条件,如选项名称,你可以选择它并单击它。