我正在用selenium-client进行一些拖放测试。它可以工作(在屏幕显示之前和之后清楚地显示切换位置的元素),但是我在编程上断言发生了变化时遇到了麻烦。
我是精神上的,还是我不能做的事情:
selenium.assert_equal("css locator", "expected id of element")
,在这种情况下,看起来像:
selenium.assert_equal("css=li:nth-child(1)", "li#list_item_2")
有关如何实现这一点的任何提示都会很棒。
谢谢,
亚当
编辑:如果我有selenium.get_element
将选择并返回它的原因,我可以在下一步执行断言。
即
element = selenium.get_element("css=li:nth-child(1)")
assert_equal(element, "li#list_item_2")
(我想)。
答案 0 :(得分:3)
您的示例无效,因为您正在比较两个不相等的字符串。断言你的元素已经移动的一种方法是使用isElementPreset
,如下所示:
//before drag and drop
assertTrue(selenium.isElementPresent("css=#source li:nth-child(1)"));
assertFalse(selenium.isElementPresent("css=#target li:nth-child(1)"));
//drag and drop code here
...
//after drag and drop
assertTrue(selenium.isElementPresent("css=#target li:nth-child(1)"));
assertFalse(selenium.isElementPresent("css=#source li:nth-child(1)"));
此示例使用Java客户端API,但应该很容易弄清楚如何在首选客户端API中执行此操作。它还将在很大程度上取决于您的应用程序,因为上面将检查id为“target”的元素在拖放之前是否有一个子li
元素,之后没有。如果你有一个HTML源代码片段,我可以证明一个更强大的例子。