2016-07-01 134 views
-2
<input type="text" id="mobile" name="mobile" placeholder="Mobile Number" maxlength="10" value="" onkeyup="javascript:dispLocMob(this);" onkeydown="javascript:dispLocMob(this);" onchange="javascript:dispLocMob(this);"> 

上面顯示的是我試圖發送密鑰的元素。我嘗試了xpath和id以及各種選擇器,但它會拋出如下所示的錯誤:Selenium WebDriver:無法選擇元素

無法找到元素:{「method」:「xpath」,「selector」:「/ html/body/div [3]/div/form/div [2]/div [1]/input「} 命令持續時間或超時:338毫秒 有關此錯誤的文檔,請訪問:http://seleniumhq.org/exceptions/no_such_element.html Build info:version:' 2.53.0',修訂:'35ae25b',時間:'2016-03-15 16:57:40' 系統信息:host:'ClaimsCM8',ip:'192.168.110.118',os.name:'Windows 8 ',os.arch:'x86',os.version:'6.2',java.version:'1.7.0_51' ***元素信息:{Using = xpath,value =/html/body/div [3]/div/form/div [2]/div [1]/input} Sessi on ID:ec543fff-7116-4880-8c98-7c60a1c697d0 驅動程序信息:org.openqa.selenium.firefox.FirefoxDriver 功能[{platform = WINDOWS,acceptSslCerts = true,javascriptEnabled = true,cssSelectorsEnabled = true,databaseEnabled = true,browserName =本地方法(native方法)= firefox,handlesAlerts = true,nativeEvents = false,webStorageEnabled = true,rotate = false,locationContextEnabled = true,applicationCacheEnabled = true,takesScreenshot = true,version = 45.0.2}] ) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知來源) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知來源) 在java.lang.reflect.Constructor.newInstance(未知來源) 在org.openqa.selenium。 remote.ErrorHandler.createThrowable(ERR orHandler.java:206) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 在有機openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363) 在org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:500) 在org.openqa.selenium.By $ ByXPath.findElement( By.java:361) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355) at Selenium.Test2.main(Test2.java:62) 由org.openqa.selenium引起。 NoSuchElementException:無法找到元素:{「method」:「xpath」,「selector」:「/ html/body/div [3]/div/form/div [2]/div [1]/input」} F或有關此錯誤的文檔,請訪問:http://seleniumhq.org/exceptions/no_such_element.html 構建信息:版本:'2.53.0',修訂:'35ae25b',時間:'2016-03-15 16:57:40' 系統信息:主機:'ClaimsCM8 ',ip:'192.168.110.118',os.name:'Windows 8',os.arch:'x86',os.version:'6.2',java.version:'1.7.0_51' 驅動程序信息:驅動程序。版本:未知 位於.FirefoxDriver.prototype.findElementInternal_(file:/// C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/[email protected]/components/driver-component。 js:10770) at .FirefoxDriver.prototype.findElement(file:/// C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/[email protected]/components/driver-component .js:10779) at .DelayedCommand.prototype.executeInternal_/h(file:/// C:/ Us ers/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/[email protected]/components/command-processor.js:12661) at .DelayedCommand.prototype.executeInternal_(file:/// C: /Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/[email protected]/components/command-processor.js:12666) at .DelayedCommand.prototype.execute/<(file:// /C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/[email protected]/components/command-processor。js:12608)

Web元素中是否存在某些不允許我訪問我的Selenium腳本中的元素的內容? 任何建議/意見將不勝感激。 謝謝!

+1

最有可能的元素不是在頁面上可見的或別的東西覆蓋它。驗證元素是否可見。 –

+2

顯示您嘗試的代碼 – Andersson

+1

請確保這不在任何框架內.... –

回答

0

嘗試如下: -

WebDriverWait wait = new WebDriverWait(driver, 10); 
el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("mobile"))); 
el.sendKeys("your value"); 

注意: - finding element之前確保它不屬於任何frameiframe內。如果它是任何frameiframe你需要切換內部的frame第一爲: - driver.switchTo().frame("frame name or id")

希望它會幫助你... :)

+0

我也厭倦了,但仍然沒有幫助。 –

+0

確保此元素不在任何框架內。 –

0

首先,如果你使用的XPath然後使用相關的XPath而不是絕對的,因爲DOM中的細微變化會導致絕對xpath無效或引用錯誤的元素。

第二次嘗試使用.click();之前.sendkeys();.所以,你的代碼可以是這樣的

WebElement ele = dvr.findElement(By.id("mobile")); 
ele.click(); 
ele.sendKeys("your string"); 

最後,確保你沒有在頁面上的任何重複的元素與相同的屬性,即ID ==「移動」。希望這有助於

0

請嘗試以下代碼:

  1. 如果元素不在任何框架:

    driver.findElement(By.id("mobile")).sendKeys("");

  2. 如果該元素是一個框架:

    // Switching to the frame

    driver.switchTo().frame(<framename>);

    driver.findElement(By.id("mobile")).sendKeys("");

    driver.switchTo().defaultContent();

另外,請啓動頁面,並輸入文本後添加一些等待。而且即使代碼不能正常工作,請檢查元素是否可見或不使用下面的代碼:

if(driver.findElement(By.id("mobile")).isDisplayed()) { 
    // Add the code given above 
} 

希望這有助於

相關問題