断言css定位器等于它的预期值

时间:2010-01-22 10:35:38

标签: selenium

我正在用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")

(我想)。

1 个答案:

答案 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源代码片段,我可以证明一个更强大的例子。