我试图用python创建一个selenium测试,结果却不一致。在
我的测试片段是:
el = self.waitButton('edit') # wait for load of show page to complete.
# check some fields
els = browser.find_elements_by_xpath("//span[@class='info']")
assert els[0].text == '2'
assert els[1].text == "George's"
assert els[2].text == 'Organisation'
assert els[5].text == '25/Mar/15'
el.click() # request for edit screen
el = self.waitButton('save') # returns save button when edit screen loaded.
x = browser.find_element_by_name('Status')
# x.click() # uncomment this line and the click two lines down is ignored
el = browser.find_element_by_xpath("//a[@class='save']") # re-find save button
el.click() # this field is selected, but the click action does not happen
el = self.waitButton('edit') # wait for edit button to appear
els = browser.find_elements_by_xpath("//span[@class='info']")
assert els[5].text == '25/Mar/15'
首先要注意的是,非常相似的代码在其他三个测试中100%有效,在不包含日期选择器的页面上字段。如果我将datapicker字段的类更改为datepickerXX此屏幕按预期工作。在
但是,当datepicker处于活动状态时,如果我点击任何数据字段(不一定是datepicker字段),那么我以后就不能点击“save”按钮了????在
所以我的问题是,如果我不能保存一个包含使用了datepicker的字段的编辑屏幕,如何可靠地测试它?有人知道(或喜欢猜测)可能发生的事情,以及失败的原因吗?在
谢谢
伊恩
我的代码有两个错误。在
1)在其他地方,我有一个定时计时器-我在等待前一个屏幕上的某个正确的东西,因此等待有时会发生,有时不会等待新屏幕。在
2)单击“选择字段”或其中的选项卡时,浏览器(FF)将显示一个选择列表。Selenium和浏览器都知道这一点——他们只是不同意何时再次隐藏选择列表。如果单击其他字段,浏览器将隐藏它。Selenium需要点击一个选择,如果没有的话就会陷入混乱。在
一旦我把这两个问题都解决了,所有的测试都按要求工作。在
相关问题 更多 >
编程相关推荐