我已經在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