我已经在selenium IDE中做了一些研究和大量工作,我找不到任何这样做的方法。自定义Selenium Java Junit4 Webdriver导出器
我想要做的是基本上添加额外的支持,并改变一些命令的现有实现,即isTextPresent和addSelection。我基本上可以将WebDriver JUnit导出器的大部分功能放在一边,因为它工作正常,但只是想添加一些自定义的方法返回。
比如我想给了出口商的isTextPresent()从此改变:
// Warning: waitForTextPresent may require manual changes
for (int second = 0;; second++) {
if (second >= 60) fail("timeout");
try { if (driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*SOME INTERESTING TEXT[\\s\\S]*$")) break; } catch (Exception e) {}
Thread.sleep(1000);
}
要这样:
SeleniumHelperUtil.isTextPresent("SOME INTERESTING TEXT");
这让我可以用我的定制SeleniumHelperUtil java类,我想我所有的硒测试使用。这是一个大型复杂的工作流程项目,所以我们最终会有数百个测试。我希望我的测试人员构建他们的测试用例,使用WebDriver将它们导出到Java中,并将其导入到JUnit4测试中。然后,他们可以将它们检入CVS,我们的自动Hudson构建服务器将每晚进行新的测试。我希望这会在我们的开发人员干预最小的情况下发生(现在它真的只有我自动取款机,我没有时间,直到他们发明了30小时的一天:))。
我已经试过
我试图做的,从webdriver.js,包括所有选项的代码剪切和粘贴制作一个自定义的出口国,我已经修改了WAITFOR功能看起来像这样的:
function waitFor(expression) {
return "SeleniumHelperUtil.isTextPresent(" + expression ")";
}
不幸的是我的全部取回是WebDriver.js实现其功能是:
// Warning: waitForTextPresent may require manual changes
for (int second = 0;; second++) {
if (second >= 60) fail("timeout");
try { if (driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*SOME INTERESTING TEXT[\\s\\S]*$")) break; } catch (Exception e) {}
Thread.sleep(1000);
}
我使用的是Selenium和Firefox 13的1.9.1版本(由于工作限制,我无法完全安装版本)。
现在我已经在xpi文件中的WebDriver-Junit4.js文件中找到了代码的一部分,所以我可以修改它并使用我的自定义代码重新生成插件,但它会很好,只需通过硒因为我不确定当我在那里时还有什么可能会破灭。
现在我已经快速修改了Webdriver-Junit4.js代码,直到我找到了解决此问题的更好方法。麻烦的是,如果我离开这里,我会锁定一个不合意的版本。如果我设法使这些更改具有自主性,我会在这里添加它们。 – tbone