有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用selenium webdriver代码在ie浏览器中关注java问题

首先,我需要鼠标在上面,然后它会打开一个下拉列表,然后我会点击该链接。它在firefox、chrome中运行良好,在ie中出现问题

这是密码

WebElement element=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/a"));

Actions act=new Actions(driver);
act.moveToElement(element).build().perform();


WebElement element2=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/ul/span[1]/li/a"));
Actions act1=new Actions(driver);
    //act1.click(element2);
act1.moveToElement(element2).click(element2).build().perform();

当我们使用这段代码时,它甚至可以在IE浏览器中工作

caps.setCapability("requireWindowFocus", true);

如果我们使用requiredwindowfocus,即使在IE浏览器中也可以正常工作,所以定位器没有问题

但是我不鼓励在我的项目中使用上面的代码。 还有别的办法吗

Ie浏览器中的问题当我们不使用requiredwindowfocus时,它是在点击其他链接,所以我假设问题是焦点问题

因此,请在不使用requiredfoucswindow的情况下帮助我解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    我的项目中也有类似的问题。在IE中,单击下拉值不起作用。我有一个非常奇怪和意想不到的解决办法。在执行操作之前查找元素。我假设这是必需的,因为当您移动到element1并尝试查找元素时,IE Xpath处理器会弄乱焦点

    WebElement element=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/a"));
    
    WebElement element2=driver.findElement(By.xpath("/html/body/div/span/form[2]/div[1]/div[1]/div[3]/div[2]/ul/span[3]/li/ul/span[1]/li/a"));
    
    Actions act=new Actions(driver);
    act.moveToElement(element).build().perform();
    act.moveToElement(element2).click(element2).build().perform();
    

    请试试这个,让我知道这是否也适合你

    也可以考虑使用相对的XPath,而不是使用的绝对XPath。第二个动作不是必需的。一个行动就能奏效

    根据用户评论进行编辑

    “移动到图元1”正在工作,列表正在显示。因此,我假设element2是可见的,因此我们可以直接单击它而不使用Actions

    Actions act=new Actions(driver);
    act.moveToElement(element).build().perform();
    element2.click();