java - 无法使用 Selenium 中的任何定位器定位任何元素

标签 java selenium

我现在在新页面上有页面对象类,其中编写了方法。当我单击第一页上的链接打开新页面时,它按预期工作。但是,当我尝试在新页面上使用元素时,我得到的只是 NullPointExceptionNoSuchElementException

我尝试过使用 xpath 并尝试过类,但最终遇到了同样的问题。 检查了 Iframe,没有。 Id 是唯一且静态的。 我在单击链接打开新页面的同一个类上编写了这些方法,以确保驱动程序不为“空”。 此外,我还添加了 10 秒的线程 sleep ,以确保页面正确加载

这是 html:

<div class="lcc-form-field">

                    <input type="text" name="firstName" id="firstName" maxlength="40" tabindex="8" class="">        
                <div class="lcc-form-field">
                    <label class="lcc-form-label lcc-form-label-required" for="firstName">
                        First Name<sup class="sup-asterisk">*</sup>
                    </label><label class="lcc-form-label lcc-form-label-required" for="lastName">
                        Last Name<sup class="sup-asterisk">*</sup>
                    </label>
                    <input type="text" name="lastName" id="lastName" maxlength="40" tabindex="9">
                </div>
</div>

代码如下:

public  void enterFirstName(String name) {      
    wait.until(ExpectedConditions.visibilityOf(enterfirstName));
    enterfirstName.sendKeys(name);
}

所以当我编写上面的代码片段时,它会抛出空点异常 当我删除它的可见性时,找不到这样的元素。

最佳答案

它不会工作,你是说 - “当我点击第一页上的链接打开新页面时。但是,当我尝试使用新页面上的元素时,我得到的只是 NullPointException 或 NoSuchElementException。 ”所以您仍在尝试使用旧页面上的元素。您需要先打开新打开的选项卡,然后尝试单击您的元素。 像这样的东西:

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1));

关于java - 无法使用 Selenium 中的任何定位器定位任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187845/

相关文章:

python - 将 anticaptcha 与 selenium 集成

java - Selenium,点击元素,挂起

java - Java中使用selenium登录facebook

python - 更改现有网络驱动程序中的 ChromeOptions

java - SWIG - Java 代理类数组参数

java - 如何舍入已在 Java 中转换为字符串的 double ?

java - Thymeleaf 源 jar 中未定义空构造函数

java - 在 java 中使用 facebook4j 从特定页面提取 facebook 用户信息

java - 运行我的程序时出现重新加载更改的类警告窗口

selenium - 如何处理动态ID