Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium抛出未找到的元素异常_Java_Selenium Webdriver - Fatal编程技术网

Java Selenium抛出未找到的元素异常

Java Selenium抛出未找到的元素异常,java,selenium-webdriver,Java,Selenium Webdriver,我不熟悉使用java的selenium,并尝试自动化一些场景。我编写了一段代码来在字段中插入文本,但问题是,当我通过xpath、id或名称在dom中搜索元素时,但当我运行脚本时,会显示该元素 我得到一个“找不到这样的元素”错误。下面是我的代码,下面是XML 我的代码: public void SearchByZipCode(String Zipcode) { WebElement addressfield = driver.findElement(By.name("address

我不熟悉使用java的selenium,并尝试自动化一些场景。我编写了一段代码来在字段中插入文本,但问题是,当我通过xpath、id或名称在dom中搜索元素时,但当我运行脚本时,会显示该元素

我得到一个“找不到这样的元素”错误。下面是我的代码,下面是XML

我的代码:

public void SearchByZipCode(String Zipcode) {
        WebElement addressfield = driver.findElement(By.name("addressline"));
        addressfield.sendKeys(Zipcode);
        WebElement search = driver.findElement(By.id("locator_submit"));
        search.click();
        WebElement result = driver.findElement(By.xpath("//div[@id='panel']//span[2]"));
        String text = result.getText();

        if (text.contains(Zipcode)) {
            System.out.println("Passed! Expected results for: " + Zipcode + "Actual result displayed for: " + text);
        } else {
            System.out.println("Failed! Expected results for: " + Zipcode + "Actual result displayed for: " + text);
        }
HTML:


我建议使用first use方法,它将等待此元素出现并激活。然后输入您的值。
另外,最好使用ID作为选择器,因为它在您的页面中可用。

验证xPath需要查看更多的DOMCheck xPath。如果您觉得xpath是正确的,则在“search.click();”之后显式等待,并等待元素(By.xpath(//div[@id='panel']///span[2]”)出现。
    <input tabindex="3" style="padding:8px; width:90%; border:1px solid 
    #cdcdcd;" class="addressentry" type="text" size="40" name="addressline" 
    id="inputaddress" value="Enter street address, city, state or ZIP" 
    onclick="clear_inputbox(this);">