Javascript破坏了Selenium测试
我目前正在为一家实习公司编写基本的硒测试,这个错误困扰了我一段时间。如果我在测试中关闭Javascript,它会顺利通过,但一旦我为测试打开Javascript,它就永远不会完成 测试如下所示:Javascript破坏了Selenium测试,java,javascript,selenium,Java,Javascript,Selenium,我目前正在为一家实习公司编写基本的硒测试,这个错误困扰了我一段时间。如果我在测试中关闭Javascript,它会顺利通过,但一旦我为测试打开Javascript,它就永远不会完成 测试如下所示: public void Login() { driver.setJavascriptEnabled(true); driver.get("https://127.0.0.1:4433"); WebElement usernamefield = driver.findElemen
public void Login()
{
driver.setJavascriptEnabled(true);
driver.get("https://127.0.0.1:4433");
WebElement usernamefield = driver.findElement(By.id("username"));
WebElement passwordfield = driver.findElement(By.id("password"));
usernamefield.sendKeys(email);
passwordfield.sendKeys(password);
WebElement loginButton = driver.findElement(By.className("jsLoginSubmit"));
loginButton.click();
driver.navigate().to("https://127.0.0.1:4433/?op=caselist");
assertTrue(driver.getTitle().contains("Overblik")
&& driver.getTitle().contains(userid.toString()));
System.out.println(email);
driver.close();
}
如果禁用Javascript,此测试工作正常。我用它来实例化我的setUp()
方法中的驱动程序:
driver = new HtmlUnitDriver();
但以下是在启用Javascript的情况下运行测试的输出:
09:40:35,162 ERROR StrictErrorReporter:79 - runtimeError: message=[The data necessary to complete this operation is not yet available.] sourceName=[https://127.0.0.1:4433/static/lib/jquery/jquery-1.11.1.min.js] line=[2] lineSource=[null] lineOffset=[0]
09:40:35,470 WARN DefaultCssErrorHandler:39 - CSS error: [21:23] Error in style rule. Invalid token ":". Was expecting one of: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
09:40:35,471 WARN DefaultCssErrorHandler:53 - CSS warning: [21:23] Ignoring the following declarations in this rule.
09:40:35,502 WARN DefaultCssErrorHandler:39 - CSS error: [148:23] Error in style rule. Invalid token ":". Was expecting one of: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
09:40:35,503 WARN DefaultCssErrorHandler:53 - CSS warning: [148:23] Ignoring the following declarations in this rule.
09:40:35,509 WARN DefaultCssErrorHandler:39 - CSS error: [163:23] Error in style rule. Invalid token ":". Was expecting one of: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
09:40:35,510 WARN DefaultCssErrorHandler:53 - CSS warning: [163:23] Ignoring the following declarations in this rule.
09:40:35,512 WARN DefaultCssErrorHandler:39 - CSS error: [182:23] Error in style rule. Invalid token ":". Was expecting one of: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
09:40:35,513 WARN DefaultCssErrorHandler:53 - CSS warning: [182:23] Ignoring the following declarations in this rule.
09:40:35,516 WARN DefaultCssErrorHandler:39 - CSS error: [201:23] Error in style rule. Invalid token ":". Was expecting one of: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
09:40:35,516 WARN DefaultCssErrorHandler:53 - CSS warning: [201:23] Ignoring the following declarations in this rule.
09:40:35162错误报告:79-runtimeError:message=[完成此操作所需的数据尚不可用。]sourceName=[https://127.0.0.1:4433/static/lib/jquery/jquery-1.11.1.min.js]line=[2]lineSource=[null]lineOffset=[0]
09:40:35470警告DefaultCssErrorHandler:39-样式规则中的CSS错误:[21:23]错误。无效令牌“:”。应为下列之一:,“}”,“;”,“/”,“-”,“!”,“继承”。
09:40:35471 WARN DefaultCssErrorHandler:53-CSS warning:[21:23]忽略此规则中的以下声明。
09:40:35502警告DefaultCssErrorHandler:39-样式规则中的CSS错误:[148:23]错误。无效令牌“:”。应为下列之一:,“}”,“;”,“/”,“-”,“!”,“继承”。
09:40:35503警告DefaultCssErrorHandler:53-CSS警告:[148:23]忽略此规则中的以下声明。
09:40:35509警告DefaultCssErrorHandler:39-样式规则中的CSS错误:[163:23]错误。无效令牌“:”。应为下列之一:,“}”,“;”,“/”,“-”,“!”,“继承”。
09:40:35510 WARN DefaultCssErrorHandler:53-CSS警告:[163:23]忽略此规则中的以下声明。
09:40:35512警告DefaultCssErrorHandler:39-样式规则中的CSS错误:[182:23]错误。无效令牌“:”。应为下列之一:,“}”,“;”,“/”,“-”,“!”,“继承”。
09:40:35513警告DefaultCssErrorHandler:53-CSS警告:[182:23]忽略此规则中的以下声明。
09:40:35516警告DefaultCssErrorHandler:39-样式规则中的CSS错误:[201:23]错误。无效令牌“:”。应为下列之一:,“}”,“;”,“/”,“-”,“!”,“继承”。
09:40:35516 WARN DefaultCssErrorHandler:53-CSS warning:[201:23]忽略此规则中的以下声明。
我不知道这意味着什么,我似乎也找不到一个解决方案或理由来解释为什么会发生这种情况。我打开了Javascript,但它抱怨CSS规则
有人知道怎么解决这个问题吗
我正在使用Selenium 2.21.0它可能会抱怨动态应用样式。你有改变风格的脚本吗?还是动态加载样式表?@Michaeldibets如果可以,我会问这个问题。但它会产生什么影响呢?如果它能够正确地测试,它将超越触发它所能做的一切,然后它将测试之后会发生什么。我猜应用了一些“无效”的css,可能有IE或其他特定浏览器的使用案例。@Michaeldbbets这只是根据我的理解
new HtmlUnitDriver()
不是一个实际的浏览器驱动程序,而是某种类似的模拟器?测试需要无头。是的,但样式仍然会改变。更改的样式应该仍然有效。这就是需要测试的。基本上:如果我按下按钮A,B会改变。更改的B仍然有效吗?