Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java selenium webdriver-从文本字段中获取文本_Java_Selenium Webdriver - Fatal编程技术网

Java selenium webdriver-从文本字段中获取文本

Java selenium webdriver-从文本字段中获取文本,java,selenium-webdriver,Java,Selenium Webdriver,我试着测试下面1+7的加法运算;但我不知道 如何获取属性“name”为“Input”的文本字段的结果输出 任何指示都将不胜感激 包装hw9; 导入java.util.concurrent.TimeUnit; 导入org.junit.*; 导入静态org.junit.Assert.*; 导入org.openqa.selenium.*; 导入org.openqa.selenium.firefox.FirefoxDriver; 公共类计算器{ 私有网络驱动程序; 私有字符串baseUrl; @以前

我试着测试下面1+7的加法运算;但我不知道 如何获取属性“name”为“Input”的文本字段的结果输出

任何指示都将不胜感激


包装hw9;
导入java.util.concurrent.TimeUnit;
导入org.junit.*;
导入静态org.junit.Assert.*;
导入org.openqa.selenium.*;
导入org.openqa.selenium.firefox.FirefoxDriver;
公共类计算器{
私有网络驱动程序;
私有字符串baseUrl;
@以前
public void setUp()引发异常{
驱动程序=新的FirefoxDriver();
baseUrl=”http://www.math.com/";
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
@试验
public void testCalculator()引发异常{
get(baseUrl+“/students/calculators/source/basic.htm”);
driver.findElement(按.name(“一”))。单击();
driver.findElement(按.name(“plus”))。单击();
driver.findElement(按.name(“七”))。单击();
driver.findElement(By.name(“DoIt”))。单击();
字符串输出=driver.findElement(By.name(“Input”)).getText();

System.out.println(“输出:”+Output);//**尝试
driver.findelelement(按.name(“输入”)).getAttribute(“值”)

例如,
element.getText()
用于获取标记内的文本节点
文本

但是,输入的文本不在标记(由节点表示)内,而是在value属性内;例如:


因此,如果要获取元素中的节点文本,必须使用
element.getText()
,但是如果要获取输入的值,必须使用
element.getAttribute(“value”)
尝试
driver.findElement(By.name(“input”).getAttribute(“value”)

例如,
element.getText()
用于获取标记内的文本节点
文本

但是,输入的文本不在标记(由节点表示)内,而是在value属性内;例如:


因此,如果要获取元素内的节点文本,必须使用
element.getText()
,但是如果要获取输入值,必须使用
element.getAttribute(“值”)

尝试使用
By.id(“输入”)
元素没有id;它只有名称和类型属性。您在第一句中说的
文本字段的id为“Input”
。另外,如果您发布您正在测试的页面的HTML,也会有所帮助。我已经编辑了原始问题。即使在您得到答案后,
assertEquals(8,输出)
将永远不会成功,因为
int
永远不能等于
字符串
。请尝试使用
By.id(“输入”)
该元素没有id;它只有名称和类型属性。您说的
文本字段的id为“输入”
在第一句话中。另外,如果您发布您正在测试的页面的HTML,也会有所帮助。我已经编辑了原始问题。即使在您得到答案后,
assertEquals(8,输出);
将永远不会成功,因为
int
永远不能等于
字符串
。没有值属性。我相信这应该可以,请参阅Hello,@user1972031!如果没有任何值属性,则表示输入的值或文本为空;在这种情况下,当您调用element.getAttribute(“值”)时,这将返回null。您好,@user1972031!我很确定如果您的输入有一些可见的文本(这意味着,您可以从浏览器的html页面中看到它),则它有一个带有该文本的值属性。如果没有任何值属性,则表示输入的值或文本为空;在这种情况下,当调用element.getAttribute(“value”)时,将返回null。如果是这种情况,则必须检查SUT(测试中的系统),它没有正确设置输入值,而不是您的selenium脚本。@budi:您提供的链接“”有一个很好的解释(下面逐字引用):--------------------------------------------------------------事实证明,如果缺少属性,它将尝试获取相应的属性。因此,您可以来自文本区域的“value”。–C-F----------------------------------------------------没有value属性。我相信这应该可以,请参见Hello,@user1972031!如果没有任何value属性,则表示输入的值或文本为空;在本例中,当您调用element.getAttribute(“value”)时,这将返回null。您好,@user1972031!我很确定如果您的输入有一些可见的文本(这意味着,您可以从浏览器的html页面中看到它),则它有一个带有该文本的值属性。如果没有任何值属性,则表示输入的值或文本为空;在这种情况下,当调用element.getAttribute(“value”)时,将返回null。如果是这种情况,则必须检查SUT(测试中的系统),它没有正确设置输入的值,而不是您的selenium脚本。@budi:您提供的链接“”有一个很好的解释(下面逐字引用):--------------------------------------------------------------事实证明,如果缺少属性,它将尝试获取相应的属性。因此,您可以文本区域中的“值”-C-F--------------------------------------------------------------
package hw9;

import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class calculator {
  private WebDriver driver;
  private String baseUrl;

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://www.math.com/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testCalculator() throws Exception {
    driver.get(baseUrl + "/students/calculators/source/basic.htm");
    driver.findElement(By.name("one")).click();
    driver.findElement(By.name("plus")).click();
    driver.findElement(By.name("seven")).click();
    driver.findElement(By.name("DoIt")).click();

    String output = driver.findElement(By.name("Input")).getText();
    System.out.println("Output: " + output);  // **<--- Empty output**
    assertEquals(8,output);

  }

  @After
  public void tearDown() throws Exception {
      driver.quit();
  }
}
      <td> 
        <div align="center"> <font size="+1"> 
          <input name="Input" type="text" size="16">
          </font></div>
      </td>