我使用的是Python 2.7,而selenium是3.4.3:
search_field= self.driver.find_element(By.ID ,'Searchbox')
time.sleep(10)
search_field.send_keys('test' + Keys.RETURN)
适用于Chrome& Firefox,但是当我使用它时它在IE中不起作用:
search_field.send_keys('test' + Keys.RETURN)
它将返回错误:
previous evaluation has not completed.
如何让send_keys工作?
添加Html
<div>
<input type="text" value="" id="Searchbox" name="name" class="input-xlarge search-query searchInput" style="padding:3px;" data-reactid=".0.1.0.0.0.1.0.0.1.0.0.1">
<span class="btn btn-small btn-warning" style="border-radius:0px;padding-left:3px;padding-right:3px;height:28px;margin-left:1px;" data-reactid=".0.1.0.0.0.1.0.0.1.0.0.2"><i class="icon-search icon-on-right bigger-110" data-reactid=".0.1.0.0.0.1.0.0.1.0.0.2.0"></i></span>
</div>
答案 0 :(得分:2)
错误说明了一切:
previous evaluation has not completed
一个简单的解决方案是在多个语句中分解复合语句,如下所示:
search_field.send_keys("test")
search_field.send_keys(Keys.RETURN)
根据您在问题中更新的HTML
,send_keys
标记内的<input>
您可以使用以下任意一行代码:
self.driver.find_element(By.XPATH ,"//input[@id='Searchbox']").send_keys("test")
#or
self.driver.find_element(By.XPATH ,"//input[@name='name']").send_keys("test")
#or
self.driver.find_element(By.XPATH ,"//input[@class='input-xlarge search-query searchInput' and @id='Searchbox']").send_keys("test")
答案 1 :(得分:1)
根据您的情况使用以下代码:
search_field = self.driver.find_element(By.ID ,'Searchbox')
time.sleep(10)
search_field.send_keys('test')
search_button = self.driver.find_element(By.CSS_SELECTOR, '.btn.btn-small.btn-warning')
time.sleep(10)
search_button.click()
希望它可以帮到你!
PS:BTW,您可以使用显式或隐式等待而不是time.sleep(10)
。