我试图在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%工作,在不包含datepicker field.If的页面上,我会将datapicker字段的类更改为datepickerXX --这个屏幕的工作方式与预期的一样。
但是,在数据报警器活动的情况下,如果我单击任何数据字段(不一定是datepicker字段),那么我以后就不能单击“保存”按钮?
因此,我的问题是,如果无法保存,如何可靠地测试包含使用中的datepicker字段的编辑屏幕?有谁知道(或喜欢猜测)可能会发生什么,以及为什么会失败?
谢谢
伊恩
发布于 2014-09-23 11:03:21
我的代码有两处问题。
( 1)在其他地方,我犯了一个计时错误--我在等待上一个屏幕上真实的东西,因此等待有时是,有时不是等待新屏幕。
2)当您单击“选择”字段或选项卡时,浏览器(FF)将显示一个选择列表。Selenium和浏览器都知道这一点--他们只是不同意选择列表何时再次被隐藏。如果单击另一个字段,浏览器将隐藏它。Selenium要求点击一个选择,如果不是,它就会陷入混乱。
一旦我对这两个问题进行了排序,所有的测试都会按要求工作。
https://stackoverflow.com/questions/25973327
复制相似问题