Fancytree selenium点击事件

时间:2015-12-24 21:22:13

标签: java selenium junit fancytree

我们正在使用selenium测试Web应用程序,并尝试使用以下

模拟花式树扩展事件
driver.findElement(By.xpath("//div[@id='tree']/ul/li/span/span[@class='fancytree-expander']")).click(); 

fancytree在jsp

中看起来像这样
<div id="tree"></div>

js代码看起来像这样

$("#tree").fancytree({
    extensions: ["filter"],
    filter: {
        autoApply: true, // Re-apply last filter if lazy data is loaded
        counter: false, // Show a badge with number of matching child nodes near parent icons
        hideExpandedCounter: true, // Hide counter badge, when parent is expanded
        mode: "hide"  // "dimm": Grayout unmatched nodes, "hide": remove unmatched nodes
      },        
    checkbox: true,
    selectMode: 3,
    quicksearch: true,
    source: {
        url: ...
    },


    lazyLoad: function(event, data) {
        ...
    },

    loadError: loadError,

    collapse: function(event, data) {
    }
 });

您能告诉我们如何模拟花式树事件点击吗?

3 个答案:

答案 0 :(得分:0)

您可以在Selenium中执行您想要的任何javascript代码。

    FirefoxDriver driver = new FirefoxDriver();
    driver.ExecuteScript("[your fire event javascript code]");

答案 1 :(得分:0)

树节点可能是通过Ajax请求加载的,因此您必须等到呈现节点。例如,在fancytree'init'事件中使用超时或触发器。

答案 2 :(得分:0)

试试这个。

tree = WebDriverWait(driver, 10).until((EC.element_to_be_clickable((By.XPATH,".//*[@id='left']/ul/li[3]/span/span[1]"))))

ActionChains(driver).click(tree).perform()