2017-04-23 139 views
0

我收到错误消息:NoSuchElementException:no such element:Unable to locate element:{“method”:“xpath”,“selector”:“html/body/form/input [1]”}

NoSuchElementException异常:没有这样的元件:无法找到元素: { “方法”: “的xpath”, “选择器”: “HTML /体/形式/输入[1]”}

当我尝试运行下面的代码。 而xpath是正确的,我已经双重检查

package Package; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
//import org.openqa.selenium.firefox.FirefoxDriver; 

public class Selenium1 { 

    public static void main(String[] args) throws InterruptedException { 
    System.setProperty("webdriver.chrome.driver","C:/chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.get("https://www.w3schools.com/Html/tryit.asp?filename=tryhtml_checkbox"); 
    WebElement ele =driver.findElement(By.xpath("html/body/form/input[1]")); 
    boolean displayedstatus = ele.isDisplayed(); 
    System.out.println("The display status :"+displayedstatus); 

    boolean enablestatus = ele.isEnabled(); 
    System.out.println("The enable status :"+enablestatus); 

    boolean selectedstatus = ele.isSelected(); 
    System.out.println("The selected status :"+selectedstatus); 

    ele.click(); 
    selectedstatus = ele.isSelected(); 
    System.out.println("The selected status :"+selectedstatus); 

    } 
} 

回答

0

如果要处理两个中的一个复选框,你需要切换到iframe,然后再搜索元素。

​​

如果以后要处理外iframe元素,你可能需要与

driver.switchTo().defaultContent(); 
0

切换回当你尝试搜索的iframe内的元素,你必须有切换焦点到您正在处理的iframe

搜索的iframe中的元素之前,试试这个:

driver.switchTo().frame(driver.findElement(By.name("iframeTitle"))); 

在这种情况下,iframe的标题是:iframeResult

下面是代码:

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
//import org.openqa.selenium.firefox.FirefoxDriver; 

public class Selenium1 { 

    public static void main(String[] args) throws InterruptedException { 
    System.setProperty("webdriver.chrome.driver","C:/chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.get("https://www.w3schools.com/Html/tryit.asp?filename=tryhtml_checkbox"); 

    //switching focus to iframe 
    driver.switchTo().frame(driver.findElement(By.name("iframeResult"))); 

    WebElement ele =driver.findElement(By.xpath("html/body/form/input[1]")); 
    boolean displayedstatus = ele.isDisplayed(); 
    System.out.println("The display status :"+displayedstatus); 

    boolean enablestatus = ele.isEnabled(); 
    System.out.println("The enable status :"+enablestatus); 

    boolean selectedstatus = ele.isSelected(); 
    System.out.println("The selected status :"+selectedstatus); 

    ele.click(); 
    selectedstatus = ele.isSelected(); 
    System.out.println("The selected status :"+selectedstatus); 



    } 

} 
+0

谢谢很多! :) –

相关问题