2017-05-09 86 views
0

作爲Selenium的新學習者,我試圖在Google搜索按鈕的Google頁面上標識一個基本元素。不過,即使元素在頁面上完全可見,我也獲得了NoSuchElementExceptionNosuchelement在Selenium Webdriver中發現異常

代碼段:

String driverPath = "C:\\Users\\nchaudhary006\\IEDriverServer.exe"; 
System.setProperty("webdriver.ie.driver",driverPath); 
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 
     capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
InternetExplorerDriver driver = new InternetExplorerDriver(capabilities); 

driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
driver.get("https://google.com"); 
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

driver.findElement(By.name("btnK")); 

解決方案的嘗試:

  1. 元,直到可見選項
  2. 向下滾動時,第一頁是鑑於
  3. 識別與XPath元素,ID,姓名,等等
  4. 所有可能的等待組合。

我可能會做錯什麼?

+0

你將'name'引用爲'btnK'哪個元素? – DebanjanB

+0

嘗試新的WebDriverWait(驅動程序,60).until(ExpectedConditions.visibilityOfElementLocated(By.name(「btnK」)))' –

回答

0

我不知道哪個元素你到底由name稱爲btnKhttps://google.com有由name搜索字段作爲q

使用Selenium 3.4.0,3.4.0 IEDriverServer IE & 10.x的( &以上)下面的代碼將把「Neha Chaudhary」放在Search字段中。

有關解決方案的幾句話:

  1. 一旦你在開始時設置ImplicitlyWait,它在你的執行仍然有效。所以你不必再次提及&。
  2. 而不是InternetExplorerDriver實現您必須使用WebDriver接口。
  3. 當你搜索元素driver.findElement(By.name("btnK"));要麼存儲爲WebElement以備將來使用或click()sendKeys("Neha Chaudhary")
  4. 這裏是工作的代碼片段執行一些動作:

    String driverPath = "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"; 
    System.setProperty("webdriver.ie.driver",driverPath); 
    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 
    capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
    WebDriver driver = new InternetExplorerDriver(capabilities); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    driver.get("https://google.com"); 
    driver.findElement(By.name("q")).sendKeys("Neha Chaudhary"); 
    

讓我知道這個答案是否是你的問題。