Python Selenium send_keys()用于非输入标记

时间:2017-09-04 02:21:26

标签: python html python-2.7 selenium

问题

我正在尝试使用selenium更改数据库页面(ReferenceUSA,需要付费或大学凭据),方法是键入页码并单击“输入”,但问题是搜索框位于div标签中。 send_keys()仅适用于输入和textarea标记。这是page navigator的图片,这是HTML:

<div class="pager">
<div class="prev button" title="Hold down to scroll through records faster." style="float: left;">«</div>
<div class="page" style="text-align: center; margin: 0px 1em; float: left; width: 40px;">1</div>
<div class="next button" title="Hold down to scroll through records faster.">»</div><span style="clear: both;"></span></div>

我的尝试

我想出了如何更改innerHTML,所以我真的只需要在div标签上输入。我想到并尝试将innerHTML更改为下一个按钮(例如,如果我想导航到第1208页,则将当前页面设置为next_button()函数中的1207),但是这些函数都写在网站的全局文件中,数千个线条很长,它们都使用相同的6个变量相互馈送,使其基本上不可读。我把这个问题带到了我的一位CS教授那里无济于事。

必须有一个简单的解决方案,但我现在不知所措。如果有人能提供一些指导,我将不胜感激

1 个答案:

答案 0 :(得分:0)

更新

我最终完全废弃了Selenium,并想出了如何使用Requests模块来做到这一点。以下是我的解决方法的代码片段:

选择起始页

data_data = {
    'requestKey': page_data,  # Collected earlier in the code
    'direction': 'Ascending', # Collected with Chrome DevTools
    'pageIndex': page_index   # Page number - 1
}
data = r.post(SELECT_PAGE, data = data_data)

我没有点击Selenium中的按钮,而是每当页码发生变化时都会发现我正在发送POST请求,所以我只是发送了POST请求。