我们正在使用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) {
}
});
您能告诉我们如何模拟花式树事件点击吗?
答案 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()