相关疑难解决方法(0)

Java Set保留订单?

Java Set是否保留订单?一个方法正在向我返回一个Set,并且假设数据是有序的但是迭代了Set,数据是无序的.有没有更好的方法来管理这个?是否需要更改方法以返回除Set之外的其他内容?

java sorting set

158
推荐指数
7
解决办法
17万
查看次数

Internet Explorer 8-10中的Selenium WebDriver Windows切换问题

我发现在尝试使用Selenium WebDriver测试我们的应用程序时遇到了问题.问题在于IE9中不稳定的弹出窗口.它并不总是可重现的,它发生在大约20%的窗口切换中,但几乎不可能在IE上进行测试.在FireFox中,一切都很完美.

  1. 我尝试增加超时:

TimeSpan interval = new TimeSpan(0, 0, 10); driver.Manage().Timeouts().ImplicitlyWait(interval);

  1. 为对象查找创建自己的方法:

               for (int x = 0; x <= waitTimeOut; x++)
                {
                    try
                    {
                        element = (IWebElement)driver.FindElement(By.XPath(obj.Xpath));
                        return element;
                    }
    
                    catch{}
                }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 尝试使用CssSelecotrs

  3. 在找到元素之前尝试进行一些重新切换:

    driver.SwitchTo().Window(GetWindowHandle(2, 1)); driver.SwitchTo().Window(GetWindowHandle(0, 1)); driver.SwitchTo().Window(GetWindowHandle(2, 1));

如果出现问题,它始终只发生在我尝试在页面上找到的第一个元素.如果找到该元素,则在此页面上查找其他元素没有任何问题.所以我认为问题在于聚焦.

调试器中的Windows句柄正确显示.例如,如果我切换到第三个窗口,driver.CurrentWindowHandle给我第三个窗口的正确句柄.但是如果我试图找到任何元素,FindElement()会抛出异常.页面已加载,我可以手动单击该元素,但FindElement()无法找到它.如果我重新运行测试,则可以毫无问题地通过此步骤,并且仅在下一次切换或进一步切换时失败.这是不可预测的.

这样的问题可能是什么原因?

java selenium internet-explorer webdriver

4
推荐指数
1
解决办法
8595
查看次数

硒中的目标窗口已关闭

在所附的屏幕截图中,我要单击“新建浏览器窗口”。我想关闭浏览器窗口,然后单击“新消息”窗口。我关闭了浏览器窗口。但是我得到了例外

org.openqa.selenium.NoSuchWindowException: no such window: target window already closed
Run Code Online (Sandbox Code Playgroud)

屏幕截图

下面是详细信息 屏幕截图

下面是代码

@Test
public void testing()
{
    driver.manage().window().maximize();
    driver.get("http://www.seleniumframework.com/Practiceform/");
    driver.findElement(By.id("button1")).click();
    Set<String> handle=driver.getWindowHandles();
    for(String handles:handle){
       try{
          String text=driver.switchTo().window(handles).getPageSource();
          if(text.contains("Agile Testing and ATDD Automation")){
              System.out.println("Text found");
              driver.close();
              break;
          }
       }catch(Exception e){}
    }
    driver.switchTo().defaultContent();
    driver.findElement(By.xpath("//button[contains(text(),'New Message Window')]")).click();
    driver.quit();
Run Code Online (Sandbox Code Playgroud)

java testng selenium-webdriver

4
推荐指数
1
解决办法
1万
查看次数

无法在IE上使用Java中的Selenium WebDriver获取新的窗口句柄

当我单击页面上的按钮(在IE浏览器中)时,将打开一个新的弹出页面.我尝试获取此弹出窗口的窗口句柄失败了.这是我的第一次尝试:

String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
Set<String>s = driver.getWindowHandles();
Iterator<String> ite = s.iterator();
while ( ite.hasNext() ) {
    String popUpHandle = ite.next();
    if(!baseWin.equals(popUpHandle)) {
        driver.switchTo().window(popUpHandle);
        System.out.println(driver.switchTo().window(popUpHandle).getTitle());
Run Code Online (Sandbox Code Playgroud)

此尝试仅打印基本窗口的句柄,如果第二个print语句放在if()语句之外,但在while()语句之内和if()语句之后,它只是输出基本窗口的标题.所以句柄集似乎只包含基本窗口句柄.

这是我的第二次尝试:

String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
ArrayList<String> popUpWin = new ArrayList<String>(driver.getWindowHandles());
popUpWin.remove(baseWin);
driver.switchTo().window(popUpWin.get(0));
System.out.println(driver.switchTo().window(popUpWin.get(0)));
Run Code Online (Sandbox Code Playgroud)

此尝试返回一个错误,该错误表示数组popUpWin为空,即size == 0.因此,当我调用driver.getWindowHandles()并且仅包含基本窗口的句柄时,不会检索弹出窗口的句柄.这是IE问题吗?有解决方法吗?或者我在代码中忽略了什么?(请注意,我忽略了我在此处包含的代码中的暂停,所以我不相信这是问题.)

java selenium webdriver popup selenium-webdriver

0
推荐指数
1
解决办法
7948
查看次数

如何关注第二个选项卡并使用 selenium webdriver 处理它

我已经打开了链接,现在我单击该页面上的登录链接,通过单击登录按钮,它会自动在新选项卡中打开。我必须填写该选项卡中的表格。为此,我尝试了以下代码:

Actions act = new Actions(Initialsetupfirefox.driver);
new Actions(Initialsetupfirefox.driver) .keyDown(Keys.CONTROL).click(Initialsetupfirefox.driver.findElement(By.xpath("//a[contains(text(),'LOGIN')]")))
         .keyUp(Keys.CONTROL)
         .perform();
        Thread.sleep(3000);

new Actions(Initialsetupfirefox.driver).sendKeys(Initialsetupfirefox.driver.findElement(By.tagName("html")), Keys.CONTROL).sendKeys(Initialsetupfirefox.driver.findElement(By.tagName("html")),Keys.NUMPAD2).build().perform();
Run Code Online (Sandbox Code Playgroud)

这样我就可以切换焦点,但无法在此选项卡中执行任何操作。请建议

selenium-webdriver

0
推荐指数
1
解决办法
1万
查看次数