2015-03-09 3 views
0

Я пытаюсь использовать SWTBot в нашем собственном приложении. Я пытаюсь использовать SWTBot Recorder, чтобы сначала создать свои тестовые примеры. Но я столкнулся с несколькими проблемами.SWTBot Recorder Сгенерированный код не является абсолютным

У меня есть два вопроса. Пожалуйста, ознакомьтесь с комментариями, которые я упомянул в каждом из них ниже.

  1. У меня есть вид на стол. Он содержит данные, которые я импортировал из файла csv. Ниже приведен код, который SWTBot дал мне.

    bot.menu("File").menu("New...").click(); 
    bot.tree().getTreeItem("AppName").select(); 
    bot.tree().getTreeItem("AppName ").select(); 
    bot.textWithLabel("IP Version:").setText("Sample"); 
    bot.text(1).setText("App"); 
    bot.text(2).setText("1"); 
    bot.textWithLabel("*").setText("Hello"); 
    bot.button("Finish").click(); 
    bot.tree().getTreeItem("Sample").expand(); 
    bot.tree().getTreeItem("Sample").getNode("App(1)").expand(); 
    

    bot.tree().getTreeItem("Sample").getNode("App(1)").getNode("Hello").select();

    bot.contextMenu("Open Application Metadata File").click(); 
    // I choose the location of my .csv file – which is also not recorded in this. 
    bot.text().setText("3.35"); //Edited data from the table – No mention of which row and which column. 
    bot.text().setText("3.3"); 
    bot.text().setText("Synthesiss"); 
    

Есть ли способ, чтобы упомянуть, какую строку и какой столбец таблицы я имею дело сейчас?

  1. У меня есть SashForm с двумя композитами. Каждый композит содержит сетку почти одинаковых данных и одинаковых имен кнопок. Когда я пытаюсь запустить SWTBot Recorder и попытаюсь щелкнуть по сетке, он не говорит, с какой сетью я сейчас сталкиваюсь. Ниже приведен код, который был создан.

    bot.menu("AppName").menu("Open Config").click(); 
    bot.button("Load").click(); //clicked from Composite 1 
    bot.button("Load").click(); //clicked from Composite 2 
    bot.tree().getTreeItem("").select(); //clicked from Grid of Composite 1 – Text not detected 
    bot.tree().getTreeItem("").select();//clicked from Grid of Composite 1 – Text not detected 
    bot.menu("QConnect+").menu("Close Config").click(); 
    

Можно с SWTBot найти который Композитный я имею дело с? Этот SashForm есть внутри вкладки, как, например, “Package Explorer”, например. Как SWTBot идентифицирует вкладку, с которой она сейчас связана.

Испытание произведено SWTBot абсолютным? Пожалуйста, дайте мне знать, если есть решение для них и где я могу его найти.

+0

Я отправил на адрес электронной почты SWTDev и получил ответ. - 1. У рекордера нет правил для правильной обработки таблиц. Пожалуйста, откройте ошибку, чтобы запросить ее, с ожидаемым выходом в этом случае, и подумайте о том, чтобы внести необходимое правило (см. Http://git.eclipse.org/c/swtbot/org.eclipse.swtbot.git/tree/org. eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java в качестве примера): https://wiki.eclipse.org/SWTBot/Contributing - Микаэль Истрия – Jeevan

+0

2. Это может быть также ограничение или недостающее правило. Какой код вы ожидаете от генератора для создания (опираясь на существующий API SWTBot)? - Микаэль Истрия – Jeevan

+0

Являются ли тесты, произведенные SWTBot абсолютными? Состояние вашего приложения, когда вы начинаете запись, может повлиять на генерируемый код. Например, первоначальный выбор и активные виды могут заставить рекордер пропустить правила выбора и активации. Таким образом, эти тесты не являются абсолютными, но более похожими на состояние вашего приложения при начале записи. - Mickael Istria – Jeevan

ответ

0

Для вашего первого вопроса вместо bot.text(). SetText ("3.35") вы должны попробовать bot.styledText(). InsertText (строка, столбец, текст);

+0

Я отправил это в команду SWTDev и получил ответ. – Jeevan

Смежные вопросы