使用 findelement 时 xpath 定位器的“用于定位器的选择器无效”错误

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> 



子衿沉夜
浏览 76回答 3
3回答

泛舟湖上清波郎朗

正确的代码应该是。List<WebElement> job_valid_message = TestBase.findElements(By.xpath("//input[@id='jobTitle_jobTitle']/following-sibling::span");if (job_valid_message.size()>0) {&nbsp; &nbsp; &nbsp; &nbsp; return true; //message is displayed&nbsp; &nbsp; } else&nbsp; &nbsp; &nbsp; &nbsp; return false; //message not displayed或者,如果您想直接访问跨度,则可以使用css。span[for='jobTitle_jobTitle' ][class='validation-error']

潇湘沐

假设是控制某些浏览器的驱动程序,我会使用TestBaseList<WebElement>&nbsp;job_valid_message&nbsp;=&nbsp;TestBase.findElements(By.cssSelector('span.validation-error');

慕的地6264312

类TestBase似乎是你的框架类,你从中调用findElements方法。由于参数中没有 By 定义,我可以建议你检查参数是字符串还是 By。如果它被字符串重载,那么默认的定位器定义是什么(如cssSelector,xpath等)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java