我需要从this Site抓取这些超链接背后的一些数据。但是,这些超链接是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="time"></div>
,后来使用javascript function calls
方法提交form
。经过一些搜索,post
似乎是一个候选人。所以我的问题是我应该如何正确地为输入标签设置一个值并提交不提交按钮的表单。
selenium
在提交表单之前,我需要为标记from selenium import webdriver
url = "http://www.echemportal.org/echemportal/propertysearch/treeselect_input.action?queryID=PROQ3h3n"
driver = webdriver.Firefox()
driver.get(url)
treePath_tag = driver.find_element_by_name("treePath")
指定值。但是,我收到了错误
消息:元素当前不可见,因此可能无法进行交互 与
<input>
如果以上是正确的,我想以这种方式提交表格。这是对的吗?
treePath_tag.send_keys('/TR.SE00.00/QU.SE.DATA_ENV/QU.SE.ENV_ENVIRONMENT_DATA/QU.SE.EN_MONITORING')
以下是网页上的来源。
selenium.find_element_by_name("add_form").submit()
<script type="text/javascript">
function AddBlock(path){
document.add_form.treePath.value=path;
document.add_form.submit();
}
</script>
用havascript调用<form id="addblock_input" name="add_form" action="/echemportal/propertysearch/addblock_input.action" method="post" style="display:none;">
<table class="wwFormTable" style="display:none;"><tr style="display:none;">
<td colspan="2">
<input type="hidden" name="queryID" value="PROQ3h1w" id="addblock_input_queryID"/> </td>
</tr>
<tr style="display:none;">
<td colspan="2">
<input type="hidden" name="treePath" value="" id="addblock_input_treePath"/> </td>
</tr>
</table></form>
答案 0 :(得分:3)
您正试图在页面上看不到的hidden
输入设置值,这就是发生错误的原因。如果您想在hidden
字段设置值,请尝试使用execute_script
,如下所示: -
treePath_tag = driver.find_element_by_name("treePath")
driver.execute_script('arguments[0].value = arguments[1]', treePath_tag, '/TR.SE00.00/QU.SE.DATA_ENV/QU.SE.ENV_ENVIRONMENT_DATA/QU.SE.EN_MONITORING')
在hidden
字段上设置值后,您可以使用以下submit
表单: -
selenium.find_element_by_name("add_form").submit()
希望它有所帮助.. :)