我写了以下内容,运行此代码后,它返回空字符串值。任何人都可以建议我解决这个问题吗? 这里我使用了gettext()方法。它不检索链接名称。
我的代码是:
package Practice_pack_1;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class CheckingUncheckingCheckbox {
WebDriver driver;
@BeforeTest
public void open()
{
driver=new FirefoxDriver();
driver.navigate().to("http://openwritings.net/sites/default/files/radio_checkbox.html");
}
@AfterTest
public void teardown() throws InterruptedException
{
Thread.sleep(3000);
driver.quit();
}
@Test
public void CheckingChkbox() throws InterruptedException{
WebElement parent = driver.findElement(By.xpath(".//*[@id='fruits']"));
List<WebElement> children = parent.findElements(By.tagName("input"));
int sz= children.size();
System.out.println("Size is: "+sz);
for (int i = 0; i <sz; i++)
{
boolean check= children.get(i).isSelected();
if(check==true)
{
System.out.println(children.get(i).getText()+ "is selected");
}
else
{
System.out.println(children.get(i).getText()+ "is not selected");
}
}
}
}
输出为:
Size is: 3
is selected
is not selected
is selected
PASSED: CheckingChkbox
答案 0 :(得分:6)
关于您的应用,您可能需要使用getAttribute("value")
而不是getText()
,因为getText会返回内部文本。
答案 1 :(得分:1)
如果您去检查您的页面HTML,标签中没有内部文本。因此,您无法使用getText()
。
我假设您希望获得输入标签的值。如果检查HTMl agian,则输入标记中有一个value属性。您可以使用,读取该值
getAttribute("value")
答案 2 :(得分:0)
尝试删除“。”在你的xpath之前,确保你的xpath元素是正确的
试试这个driver.findElement(By.id("fruits")).getText());
答案 3 :(得分:0)
我已经改变了你编程为更好的方式&#34;一,使用java的容量 及其工具。
实际上,getText()用于捕获标签之类的文本,如
<input id="input1" value="123"> getText() catches here </input>
和getAttribute()捕获指定属性的值。
<input id="input1" value=" getAttribute("value") catches here ">123</input>
这是我的代码版本。
@Test
public void CheckingChkbox() throws InterruptedException{
WebElement parent = driver.findElement(By.xpath(".//*[@id='fruits']"));
List<WebElement> children = parent.findElements(By.tagName("input"));
System.out.println("Size is: "+children.size());
for (WebElement el : children)
{
if(el.isSelected())
{
System.out.println(el.getAttribute("value")+ "is selected");
}
else
{
System.out.println(el.getAttribute("value")+ "is not selected");
}
} // end for
}// end CheckingChkbox()