Job.JobTitles.Add.JobTitleValidMessage的xpath 是:
//input[@id='jobTitle_jobTitle']/following-sibling::span
它在第一行代码中给出 NullPointerException 。如何解决呢?
List<WebElement> job_valid_message = TestBase.findElements("Job.JobTitles.Add.JobTitleValidMessage");
if (job_valid_message.size()==1) {
return !job_valid_message.get(0).isDisplayed();
} else
return true;
元素的HTML来源
<li> <label for="jobTitle_jobTitle">Job Title <em>*</em></label> <input type="text" name="jobTitle[jobTitle]" maxlength="100" id="jobTitle_jobTitle" class="validation-error"><span for="jobTitle_jobTitle" generated="true" class="validation-error">Required</span> </li>
答案 0 :(得分:2)
正确的代码应该是。
List<WebElement> job_valid_message = TestBase.findElements(By.xpath("//input[@id='jobTitle_jobTitle']/following-sibling::span");
if (job_valid_message.size()>0) {
return true; //message is displayed
} else
return false; //message not displayed
或者,如果您想直接访问范围,则可以使用css span[for='jobTitle_jobTitle' ][class='validation-error']
。
答案 1 :(得分:0)
假设TestBase
是控制某些浏览器的驱动程序,我会使用
List<WebElement> job_valid_message = TestBase.findElements(By.cssSelector('span.validation-error');
答案 2 :(得分:0)
TestBase类似乎是您从中调用findElements方法的框架类。由于参数中没有按定义,我可以建议您检查参数是字符串还是By。如果使用字符串重载,则默认定位器定义是什么(如cssSelector,xpath等)。