2015-12-24 2 views
1

Мы тестируем веб-приложение с использованием селена и пытаемся имитировать фантазии дерева расширить событие, используя следующийFancytree события селена нажмите

driver.findElement(By.xpath("//div[@id='tree']/ul/li/span/span[@class='fancytree-expander']")).click(); 

fancytree выглядит, как это в СПЯ

<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) { 
    } 
}); 

Можете ли вы сообщить нам, как мы можем имитировать событие причудливого дерева нажмите?

+0

Что происходит сейчас, любые ошибки? Благодарю. – alecxe

+0

вы можете добавить образец общедоступного сайта с тем же случаем и пример кода, который вы пытаетесь запустить, если возможно, ошибку –

ответ

0

Вы можете выполнить любой код javascript, который вы хотите в Selenium.

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

Узлы деревьев, вероятно, загружаются с помощью запроса Ajax, поэтому вам нужно подождать, пока будут отображаться узлы. Например, используя тайм-аут или запускать что-то в событии «init» fancytree.

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() 
Смежные вопросы