2

我正在做硒网络驱动程序。我有一些问题。如果我点击浏览按钮,那么应该显示弹出窗口。所以我的应用程序没有点击也没有打开浏览器。

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

4

3 回答 3

0

是的,它没有找到元素。首先,您可以使用 selenium IDE 验证 selenium webdriver 可能会找到哪些元素。在此处下载用于 firefox 浏览器的 selenium IDE 插件。要查看的另一件事是您指定的 xpath。除非您以“//”或“xpath =”开头,否则 Selenium 无法识别 xpath,因此我会将您的元素搜索更改为

WebElement fileInput = driver.findElement(By.xpath("//html/body/form[1]/p[2]/input"));

如果这不起作用,则在 Webdriver 中搜索之前使用 selenium IDE 验证元素的 xpath。

于 2012-12-18T20:06:33.890 回答
0

html/body/form[1]/p[2]/input -- 绝对 XPath

这个 XPath 并不总是有效。使用输入标签中给出的“id”或“name”属性。

请让我知道我的基金会是否有效。

于 2014-04-08T10:21:52.383 回答
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");

上面的代码...在网页中寻找浏览按钮,然后执行“单击”操作弹出打开,然后发送“图像文件”的路径。

我希望这会有所帮助......一切顺利:)

于 2012-11-23T12:18:24.247 回答