使用Selenium IDE使用Firefox Webdriver获取Eval命令

时间:2013-06-20 12:53:09

标签: java javascript selenium selenium-webdriver

你好,

我有一个使用此代码的工作Selenium IDE脚本:

 getEval |      this.page().findElement('xpath=//html/body/div[18]/div[9]/div[2]/div/div[9]/div[2]/center/div/div/div[2]/div/span/span/a').removeAttribute('target')

然后我将整个测试用例导出为Junit测试用例。导出中不包含getEval的命令。我尝试了以下代码:

if (driver instanceof JavascriptExecutor) {
    js = (JavascriptExecutor)driver;

}
js.executeScript("this.page().findElement('xpath=//html/body/div[18]/div[9]/div[2]/div/div[9]/div[2]/center/div/div/div[2]/div/span/span/a').removeAttribute('target');");

运行这行代码时,我得到并且异常:页面未定义

我也尝试过:

sel = new WebDriverBackedSelenium(driver, driver.getCurrentUrl());
    sel.getEval("page().findElement('xpath=//html/body/div[18]/div[9]/div[2]/div/div[9]/div[2]/center/div/div/div[2]/div/span/span/a').removeAttribute('target')");

Junit测试在此行中运行时崩溃,测试用例失败。我想知道我是否正在发送正确的javascript脚本,或者是否有另一种更好的方式通过java执行这样的Selenium命令。

我使用的是java 6和Selenium 2.33.0

1 个答案:

答案 0 :(得分:0)

为什么不试试selenium webdriver API或selenium 2.0?如果您想编写更复杂的测试,这是一种更好的方法。您可以在此处查看一些示例:http://docs.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations