我正在做selenium webdriver。我有一些问题。如果我点击浏览按钮,那么应该显示popup.so我的应用程序没有点击而不是打开浏览器。
try{
WebElement fileInput = driver.findElement(By.xpath("html/body/form[1]/p[2]/input"));
fileInput.sendKeys("C:\\Documents and Settings\\mahesh\\Desktop\\button then display msg.png");
System.out.println("valid");
}
catch(NoSuchElementException ex) {
System.err.println("invalid");
}
我遇到了一个问题。
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"html/body/form[1]/p[2]/input"}
Command duration or timeout: 30.06 seconds
这种错误即将到来。
所以请任何人指导我来解决这个问题。
感谢 mahesh.k
答案 0 :(得分:0)
从上面的错误中,我认为它无法在您的网页上找到该元素...请交叉验证写入的Xpath表达式....
此外在发送密钥(文件路径)之前....执行单击按钮,打开弹出窗口...然后发送密钥...
以下是http://www.freeimagehosting.net/upload.php
上的C#代码 IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.freeimagehosting.net/upload.php");
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
IWebElement returnedValue = driver.FindElement(By.Name("attached"));
returnedValue.Click();
returnedValue.SendKeys("C:\\file.png");
以上代码...在网页中查找“浏览”按钮,然后执行“单击”操作以弹出打开,然后发送“图像文件<”的路径/强>”。
我希望这有助于......一切顺利:)
答案 1 :(得分:0)
是的,它找不到元素。首先,您可以使用selenium IDE验证selenium webdriver可能找到的元素。下载firefox浏览器here的selenium IDE插件。 另一件需要注意的是你指定的xpath。 Selenium不识别xpath,除非你以“//”或“xpath =”开头,所以我会将你的元素搜索改为
WebElement fileInput = driver.findElement(By.xpath("//html/body/form[1]/p[2]/input"));
如果这不起作用,那么在Webdriver中搜索之前使用selenium IDE来验证元素的xpath。
答案 2 :(得分:0)
html / body / form [1] / p [2] / input - Absolute XPath
此XPath不会始终有效。使用&#34; id&#34;或&#34;名称&#34;输入标记中给出的属性。
请让我知道我的Funda是否工作过。