我试图在输入字段中添加日期。当我使用webdriver访问输入字段时,使用以下代码:
driver.find_element_by_class_name('input[class=".textbox-text.validatebox-text.textbox-prompt"]')
我收到错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"class selector","selector":"input[class=".textbox-text.validatebox-text.textbox-prompt"]"}
当我运行get_attribute('class')循环时,我可以看到这个类:
easyui-datebox base datebox-f combo-f textbox-f
但是当我尝试使用此代码时选择:
driver.find_element_by_class_name('input[class=".easyui-datebox.base.datebox-f.combo-f.textbox-f"]')
我收到此错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"class name","selector":"input[class=".easyui-datebox.base.datebox-f.combo-f.textbox-f"]"}
这是html代码:
<td width="114" nowrap="">
<input type="text" id="FROMDATE" class="easyui-datebox base datebox-f combo-f textbox-f" data-options="keyHandler: {
up: function(e){},
down: function(e){},
left: function(e){},
right: function(e){},
enter: function(e){handleReturn(e);},
query: function(q,e){}
},
onChange:function(newVal,oldVal){if (ignoreOnChange) return false; resetDateRange_150();}" style="width: 114px; display: none;" textboxname="FROMDATE" comboname="FROMDATE">
<span class="textbox combo datebox" style="width: 112px; height: 20px;">
<span class="textbox-addon textbox-addon-right" style="right: 0px;"><a href="javascript:void(0)" class="textbox-icon combo-arrow" icon-index="0" tabindex="-1" style="width: 18px; height: 20px;"></a></span>
<input type="text" class="textbox-text validatebox-text textbox-prompt" autocomplete="off" placeholder="" style="margin-left: 0px; margin-right: 18px; padding-top: 3px; padding-bottom: 3px; width: 86px;">
<input type="hidden" class="textbox-value" name="FROMDATE" value="">
我尝试访问的输入字段:
<input type="text" class="textbox-text validatebox-text textbox-prompt" autocomplete="off" placeholder="" style="margin-left: 0px; margin-right: 18px; padding-top: 3px; padding-bottom: 3px; width: 86px;">
有什么建议吗?
答案 0 :(得分:0)
driver.find_element_by_class_name('input[class=".textbox-text.validatebox-text.textbox-prompt"]')
在上面的代码中,为类名指定的值似乎无效。
输入[class =“。textbox-text.validatebox-text.textbox-prompt”] 似乎是 css选择器语法。但是,这需要一次修正。 有效的css选择器是:
input.textbox-text.validatebox-text.textbox-prompt
或
输入[class ='textbox-text validatebox-text textbox-prompt']
我建议使用以下其中一项:
driver.find_element_by_css_selector("input.textbox-text.validatebox-text.textbox-prompt")
driver.find_element_by_css_selector("input[class='textbox-text validatebox-text textbox-prompt']")