java - 使用 findelements 时 xpath 定位器出现 "Invalid Selector Used for Locator "错误

标签 java list selenium

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> 

最佳答案

正确的代码应该是。

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

关于java - 使用 findelements 时 xpath 定位器出现 "Invalid Selector Used for Locator "错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370486/

相关文章:

javascript - 如何从文件执行 JavaScript

java - 在 JAR 中指定 JVM 堆大小

java - 当我使用应用程序 json 查看器打开 JSON 文件时,它为空

python - 根据字符串长度填充列表的空列表

Python - 将变量存储在每次程序重新启动时保存的列表中

java - 填充并打印个人 LinkedList 复制品的元素

c# - Atata selenium 网络驱动程序无法在 Angular 应用程序上通过 id 找到控件

java - REST:告诉客户端仅发送 csv 和文本格式

java - 理解 wait()

java - Selenium 没有提取与网站上相同的 HTML