为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2022-09-07 16:28:06
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> 
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

正确的代码应该是。


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']


查看完整回答
反对 回复 2022-09-07
?
潇湘沐

TA贡献1816条经验 获得超6个赞

假设是控制某些浏览器的驱动程序,我会使用TestBase

List<WebElement> job_valid_message = TestBase.findElements(By.cssSelector('span.validation-error');


查看完整回答
反对 回复 2022-09-07
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

类TestBase似乎是你的框架类,你从中调用findElements方法。由于参数中没有 By 定义,我可以建议你检查参数是字符串还是 By。如果它被字符串重载,那么默认的定位器定义是什么(如cssSelector,xpath等)。


查看完整回答
反对 回复 2022-09-07
  • 3 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信