我很好奇是什么会导致FindElement方法无法返回任何内容(非null),即使该页面和HTML中存在该元素。每隔一段时间,当我的代码中有一个Assert.AreEqual方法时,它就会遇到这个问题。
我的断言通常如下所示:
Assert.AreEqual(stringValue, FindElement(By.XPath("<XPath path>")).Text);
错误消息回来说,FindElement以“&lt;&gt;”的形式返回,就像没有值一样。是否有可能我的脚本过快而跳过它或者是否存在其他一些强调问题。
答案 0 :(得分:1)
当您的网页上的这个文字实际上没有存储为innerHTML时,可能会发生这种情况,它可能位于您元素的@RunWith(PowerMockRunner.class)
@PrepareForTest(SmokeRouteBuilder.class)
public class SmokeRouteBuilderTest {
@Test
public void testSmokeMessageId_exception() throws UnknownHostException {
UUID id = UUID.randomUUID();
mockStatic(InetAddress.class);
mockStatic(UUID.class);
when(InetAddress.getLocalHost()).thenThrow(UnknownHostException.class);
when(UUID.randomUUID()).thenReturn(id);
assertEquals(id.toString(), SmokeRouteBuilder.smokeMessageId());
}
}
属性中,当使用Text方法时,您只能获得innerHTML,因此它看起来像是&#39;空了。
尝试使用GetAttribute,检查您的元素以找到它如何存储此文本。
希望我能正确理解你的问题。 :d