首页 文章

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

提问于
浏览
0

我正在用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 回答

  • 3

    你的例子赢了't work because you'比较两个不相等的字符串 . 声明元素已移动的一种方法是使用 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源代码片段,我可能会证明一个更强大的例子 .

相关问题