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显示
在控制台
中答案 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");