我正在编写 "Python测试驱动开发" 中的示例,更具体地说是第一个功能测试。但由于某种奇怪的原因,send_keys
无法正常工作。这就是我现在正在尝试的 - 顺便说一下,我已经将隐式等待改为显式等待了!
inputbox = self.browser.find_element_by_id('id_new_item')
self.assertEqual( # This passes, it's here just for completeness
inputbox.get_attribute('placeholder'),
'Enter a To-Do item'
)
inputbox.send_keys('Buy peacock feathers')
inputbox.send_keys(Keys.ENTER) # Everything okay up to here
WebDriverWait(self.browser, 10).until(
EC.text_to_be_present_in_element((By.CSS_SELECTOR, "table#id_list_table tr td"), "Buy peacock feathers")
)
table = self.browser.find_element_by_id('id_list_table')
rows = table.find_elements_by_tag_name('tr')
self.assertIn('1: Buy peacock feathers', [row.text for row in rows])
inputbox1 = self.browser.find_element_by_id('id_new_item') # Changed the variable only to test if it would hang too - and it does
inputbox1.send_keys('Use peacock feathers to make a fly')
inputbox1.send_keys(Keys.ENTER) # This hangs
self.fail()
WebDriverWait(self.browser, 10).until(
EC.text_to_be_present_in_element((By.CSS_SELECTOR, "table#id_list_table tr td"), "Use peacock feathers to make a fly")
)
它从未达到
self.fail()
。我尝试将其移至上一行,测试失败,就像应该的那样。但是inputbox1.send_keys(Keys.ENTER)
从不起作用,当我看到浏览器运行测试时,inputbox1.send_keys('Use peacock feathers to make a fly')
从不在输入框中写入“使用孔雀羽毛制作飞行器”。发生了什么?我正在使用最新的Selenium(编辑:我尝试禁用Firefox中的多进程,但结果没有改变-尝试写入并按回车键时仍然挂起。