Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Selenium WebDriver:无法选择元素_Selenium_Xpath_Selenium Webdriver_Automated Tests - Fatal编程技术网

Selenium WebDriver:无法选择元素

Selenium WebDriver:无法选择元素,selenium,xpath,selenium-webdriver,automated-tests,Selenium,Xpath,Selenium Webdriver,Automated Tests,上面显示的是我试图发送密钥的元素。我尝试了xpath和id以及各种选择器,但它抛出了一个错误,如下所示: <input type="text" id="mobile" name="mobile" placeholder="Mobile Number" maxlength="10" value="" onkeyup="javascript:dispLocMob(this);" onkeydown="javascript:dispLocMob(this);" onchange="javascr

上面显示的是我试图发送密钥的元素。我尝试了xpath和id以及各种选择器,但它抛出了一个错误,如下所示:

<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”,“选择器”:/html/body/div[3]/div/form/div[2]/div[1]/input“}
命令持续时间或超时:338毫秒
有关此错误的文档,请访问: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'
***元素信息:{Using=xpath,value=/html/body/div[3]/div/form/div[2]/div[1]/input}
会话ID:ec543fff-7116-4880-8c98-7c60a1c697d0
驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver
功能[{platform=WINDOWS,acceptSslCerts=true,javascriptEnabled=true,cssSelectorsEnabled=true,databaseEnabled=true,browserName=firefox,handlesAlerts=true,nativeEvents=false,webStorageEnabled=true,rotatable=false,locationContextEnabled=true,applicationCacheEnabled=true,takesScreenshot=true,version=45.0.2}]
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.openqa.selenium.remote.ErrorHandler.CreateTrowable(ErrorHandler.java:206)
位于org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
位于org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
位于org.openqa.selenium.remote.RemoteWebDriver.findelementbypath(RemoteWebDriver.java:500)
位于org.openqa.selenium.By$ByXPath.findElement(By.java:361)
位于org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355)
位于Selenium.Test2.main(Test2.java:62)
原因:org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“xpath”,“选择器”:“/html/body/div[3]/div/form/div[2]/div[1]/input”}
有关此错误的文档,请访问: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'
驱动程序信息:驱动程序。版本:未知
at.FirefoxDriver.prototype.findElementInternal_(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver配置文件/扩展/fxdriver@googlecode.com/组件/驱动程序组件(js:10770)
at.FirefoxDriver.prototype.findElement(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver配置文件/扩展/fxdriver@googlecode.com/组件/驱动程序组件(js:10779)
at.DelayedCommand.prototype.executeInternal\uh(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver配置文件/扩展/fxdriver@googlecode.com/组件/命令处理器(js:12661)
at.DelayedCommand.prototype.executeInternal_(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver配置文件/扩展/fxdriver@googlecode.com/组件/命令处理器(js:12666)
在.DelayedCommand.prototype.execute/中尝试以下操作:-

Unable to locate element: {"method":"xpath","selector":"/html/body/div[3]/div/form/div[2]/div[1]/input"}
Command duration or timeout: 338 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'ClaimsCM8', ip: '192.168.110.118', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_51'
*** Element info: {Using=xpath, value=/html/body/div[3]/div/form/div[2]/div[1]/input}
Session ID: ec543fff-7116-4880-8c98-7c60a1c697d0
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=WINDOWS, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=45.0.2}]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:500)
    at 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)
Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"/html/body/div[3]/div/form/div[2]/div[1]/input"}
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'ClaimsCM8', ip: '192.168.110.118', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_51'
Driver info: driver.version: unknown
    at <anonymous class>.FirefoxDriver.prototype.findElementInternal_(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
    at <anonymous class>.FirefoxDriver.prototype.findElement(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10779)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)
    at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/EFERNA~1/AppData/Local/Temp/anonymous4369679942726534324webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)
注意:-在
查找元素
之前,确保元素不在任何
iframe
内。如果它在任何
iframe
中,则需要首先将该
切换为:-
驱动程序.switch to().frame(“帧名称或id”)


希望它能帮助您……:)

首先,如果您使用的是xpath,那么请使用相对xpath而不是绝对xpath,因为DOM中的细微更改会使绝对xpath无效或引用错误的元素

第二次尝试使用。单击();before.sendkeys();。所以你的代码可以是

WebDriverWait wait = new WebDriverWait(driver, 10);
el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("mobile")));
el.sendKeys("your value");
最后,确保页面上没有任何具有相同属性的重复元素,即id==“mobile”。希望这有帮助,请尝试以下代码:

WebElement ele = dvr.findElement(By.id("mobile"));
ele.click();
ele.sendKeys("your string");
  • 如果图元不在任何框架中:

    driver.findElement(By.id(“移动”)).sendKeys(“”)

  • 如果图元位于框架内:

    //切换到帧

    driver.switchTo().frame()

    driver.findElement(By.id(“移动”)).sendKeys(“”)

    driver.switchTo().defaultContent()

  • 另外,请在启动页面并输入文本后添加一些等待。即使代码不起作用,请使用以下代码检查元素是否可见:

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

    希望这有帮助

    最有可能的是元素在页面上不可见或其他内容正在覆盖它。验证元素是否可见。显示您尝试的代码确保这不在任何帧内…我也很累,但仍然没有帮助。