如何从以下代码中获取文本

时间:2014-03-10 10:26:06

标签: java selenium selenium-webdriver

HTML代码

<label for="ctl00_ContentPlaceHolder1_RadPanelBar1_i0_chkColumns_4">Job Title</label>

我在页面中有一个文本上面的html代码是firebug中可以看到的那个文本。我需要从那里得到“职称”的文字。

我写的代码是

String JobTitle= driver.findElement(By.id("ctl00_ContentPlaceHolder1_RadPanelBar1_i0_chkColumns_4")).getAttribute("label");

Reporter.log(JobTitle+" is Displayed",true);

我尝试了gettext方法,但它不起作用...当我使用上面的代码时它正在显示

null显示

在控制台

3 个答案:

答案 0 :(得分:1)

请确保您的HTML代码与原始应用代码一致。如果两者相同,则以下内容将起作用。

 String value=driver.findElement(By.xpath('//label[@for='ctl00_ContentPlaceHolder1_RadPanelBar1_i0_chkColumns_4']')).getText();

答案 1 :(得分:1)

首先,您需要检查标签是否可见,因为Selenium不支持读取不可见元素的文本。其次,根据您的代码,您正在尝试检查标签是否可见。有一个“显示”属性。 driver.findElement(By.xpath("xPath for label")).Displayed 根据标签是否可见,此调用将返回true或false。

不,如果您想阅读文本,那么.Text属性会在标签可见时重新启动文本。如果不可见,您应该尝试.getAttribute(“innerHTML”)。这应该适合你。

答案 2 :(得分:0)

<label>标记没有id属性,因此您需要使用其xpath代替:

WebElement label = driver.findElement(By.xpath("//label[@for='ctl00_ContentPlaceHolder1_RadPanelBar1_i0_chkColumns_4']"));

然后,你可以使用:

String Jobvalue = label.getText();

或者:

String Jobvalue = label.getAttribute("innerHTML");