为什么我的selenium java测试脚本没有打印出一个简单的确认字符串?

为什么我的selenium java测试脚本没有打印出一个简单的确认字符串?,java,selenium,selenium-webdriver,selenium-ide,selenium-rc,Java,Selenium,Selenium Webdriver,Selenium Ide,Selenium Rc,我正在尝试完成一个用Java编写的测试脚本。一切都很好,我正试图打印出一份确认,如果所有前面的步骤运行,这表明帐户创建是成功的 为此,我将元素放入字符串中,然后使用System.out.println命令打印出元素。但出于某种原因,我得到的只是以下几点 确认: 就这样。它应该显示“客户信息添加成功”的字符串文本。在过去的两个小时里,我一直试图让它打印出来。有人能帮忙吗 这是导致问题的代码 String conf = driver.findElement(By.id("MainContent_lb

我正在尝试完成一个用
Java
编写的测试脚本。一切都很好,我正试图打印出一份确认,如果所有前面的步骤运行,这表明帐户创建是成功的

为此,我将元素放入字符串中,然后使用
System.out.println
命令打印出元素。但出于某种原因,我得到的只是以下几点

确认:
就这样。它应该显示“客户信息添加成功”的字符串文本。在过去的两个小时里,我一直试图让它打印出来。有人能帮忙吗

这是导致问题的代码

String conf = driver.findElement(By.id("MainContent_lblTransactionResult")).getText();
    System.out.println("CONFIRMATION: " + conf);
我已经检查并重新检查了元素id,它是正确的元素id

(确认页)

(Eclipse输出)

试试这个

String conf = driver.findElement(By.id("MainContent_lblTransactionResult")).innerHTML;

您试图从元素中提取的内容位于innerHTML中,请使用一些延迟,如
Webdriver wait。直到在点击submit后执行
线程睡眠

尝试使用JavascriptExecutor获取文本,如下所示:

JavascriptExecutor jse = (JavascriptExecutor)driver;
String conf = jse.executeScript("$('#MainContent_lblTransactionResult').text();", "");

System.out.println("CONFIRMATION: " + conf);
您也可以尝试使用
.html()
而不是
.text()


希望它能解决您的问题。

您是否从driver.findElement(By.id(…)获得有效的返回?您的意思是什么?我试图通过打印名为“conf”的字符串来获得有效的返回。这就是你的意思吗?抱歉.WebElement we=driver.findElement(By.id(“MainContent\u lblttransactionresult”);检查WebElement是否返回我试图运行它,但它在行旁边给了我一个红色的x标记。在WebElement上悬停时,它说“注意:这个元素既没有附加的源代码也没有附加的Javadoc,因此找不到Javadoc。”请阅读原因。粘贴代码并正确格式化。我正在尝试获取文本消息。这就是代码具有getText()的原因;最后这只是一个确认信息。所以我的最后一行是System.out.println(“确认:+conf);但是没有提取conf字符串。这里是:-成功添加客户信息我假设您在更新页面后正在阅读该页面。你是将span添加到页面中,还是将span清空,然后添加确认。我找到了答案。出于某种奇怪的原因,我的电脑执行这些行的速度非常快。这么快就赶上了。因此,我添加了一个新行,强制它等到并且只等到它真正看到元素-WebDriverWait wait=newwebdriverwait(driver,10);WebElement=wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(“id”));现在它工作了!还是那么好奇。在更新之前是否添加了跨度或是拉空
String conf = jse.executeScript("$('#MainContent_lblTransactionResult').html();", "");