我正在使用Java和Firefox和Firebug,我无法找到第二页上的元素。例如,如果我登录gmail,我就无法找到并点击已发送邮件或下一页上的任何其他按钮。
我尝试使用xpath(绝对值和相对值),但每次我都得到一个错误,即找不到元素。使用代码,我可以成功登录,但一旦页面加载,就会出现错误“元素未找到”。
请提出任何解决方案
我同意CODEBLACK的回答。您还可以选择Imlicit wait,这将使selenium隐式等待一段给定的时间。尝试以下操作:- driver.manage()。超时()。隐式等待(20,时间单位。秒);
您可以根据自己的方便指定时间。祝你好运。!
除非您告诉WebDriver等到加载第二页上的元素,否则WebDriver将只是在能够运行后立即尝试单击该元素。这很糟糕,因为当WebDriver已经尝试单击它时,您的元素可能尚未加载...超时混乱接踵而至...
尝试以下方法...使用WebDriverWait类使WebDriver在尝试单击页面上的元素之前等待该元素被加载...:
WebDriverWait wait = new WebDriverWait(driver, 100);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("your xpath")));
element.click();
WebDriverWait(driver,100)中的“100”是您希望WebDriver在超时之前重复尝试定位元素的最大秒数...
下面是我为firefox浏览器初始化的selenium web驱动程序。 尽管我给出了隐式等待,但我没有等待元素。它会立即抛出not found异常。如果我放那么它工作正常,没有任何问题。但是把现在测试用例包含更多线程的任何地方。sleep比实际的测试用例代码低。有人能给我建议正确的方法吗?
我有一个问题,上传文件到网络系统使用硒驱动程序。所以在我的页面上,我没有任何输入来设置文件路径,而且我在网络上找到的大多数解决方案都不适合我。我必须点击上传文件按钮,然后在窗口对话框中设置文件的路径。我找到了winforms SendKeys类中使用的方法: 它的工作,但只有当测试有完全控制的机器(如果没有-路径已发送到某处不对话)。这就是问题所在,因为我无法完全控制运行测试的机器。你知道不使用S
根据Selenium WebDriver文档,我们可以将名称或句柄传递给driver.switchTo().window(nameOrHandle);为了获取句柄,我们有getWindowHandle。如何根据窗口名称打开新窗口?如何获取当前窗口名称? / ***将此驱动程序未来命令的焦点切换到具有给定名称/句柄的窗口。* *有关详细信息,请参阅W3C WebDriver规范*。**@param
我试图启动firefox浏览器,并使用selenium webdriver打开一个网页示例< code>google.com。我成功地启动了浏览器,但启动网页时出现了一些问题。我得到的错误是 线程“main”中的异常 org . open QA . selenium . remote . unreachablebrowserexception:无法启动新会话。 可能的原因是远程服务器地址无效或浏览
我查了一下,我怎么能默默地运行硒:在这里找到了下一个伟大的答案 我正在尝试让selenium正常运行,直到一些操作完成,然后在后台运行它。 有可能吗? 高级Oz中的thanx
正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现