Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java selenium webdriver中的下拉功能不起作用_Java_Selenium_Webdriver - Fatal编程技术网

Java selenium webdriver中的下拉功能不起作用

Java selenium webdriver中的下拉功能不起作用,java,selenium,webdriver,Java,Selenium,Webdriver,在Selenium中运行测试时,尝试单击下拉菜单中的元素时出现问题。因此,根据下面的屏幕截图,我将鼠标悬停在“报告”,然后是“资产管理”,然后是“终止报告:待定”。单击“已终止报告:待定”选项应将我带到相应页面 为此,我在WebDriver中编写了以下代码: public static void terminatedReportPendingFocus(InternetExplorerDriver driver) { WebElement terminatedReportPen

在Selenium中运行测试时,尝试单击下拉菜单中的元素时出现问题。因此,根据下面的屏幕截图,我将鼠标悬停在“报告”,然后是“资产管理”,然后是“终止报告:待定”。单击“已终止报告:待定”选项应将我带到相应页面

为此,我在WebDriver中编写了以下代码:

    public static void terminatedReportPendingFocus(InternetExplorerDriver driver)
{
    WebElement terminatedReportPendingFocus = driver.findElement(By.xpath("//a[contains(@href,'GetTerminatedPendingReport')]"));
    terminatedReportPendingFocus.click();
}
我没有发现任何问题,因为我使用了类似的代码来访问“终止报告:挂起”页面。但是,由于某种原因,当我运行测试时,浏览器最初关注我想要的元素,然后失去关注,并下拉到“集合”下拉列表,选择一个与我在代码中选择的href完全不同的页面。有人能帮忙解释一下原因吗?非常感谢

资产管理实施

    public static void assetManagementFocus(InternetExplorerDriver driver)
{
    WebElement assetManagementFocus = driver.findElement(By.xpath(".//*[text()='Asset Management']"));
    Actions hoverOnReportWindow = new Actions(driver);
    hoverOnReportWindow.moveToElement(assetManagementFocus).build().perform();
    assetManagementFocus.click();
}
代码的完整实施

public class optionFocusControls {

//REPORTS TAB   
public static void reportWindowFocus(InternetExplorerDriver driver)
{
    WebElement reportWindowFocus = driver.findElement(By.linkText("Reports"));
    Actions hoverOnReportText = new Actions(driver);
    hoverOnReportText.moveToElement(reportWindowFocus).build().perform();           
}

public static void assetManagementFocus(InternetExplorerDriver driver)
{
    WebElement assetManagementFocus = driver.findElement(By.xpath(".//*[text()='Asset Management']"));
    Actions hoverOnReportWindow = new Actions(driver);
    hoverOnReportWindow.moveToElement(assetManagementFocus).build().perform();
    assetManagementFocus.click();
}

public static void daysInStockFocus(InternetExplorerDriver driver)
{
    WebElement daysInStockFocus = driver.findElement(By.xpath(".//*[text()='ET Days In Stock']"));
    Actions hoverOnDaysInStock = new Actions(driver);
    hoverOnDaysInStock.moveToElement(daysInStockFocus).build().perform();
    daysInStockFocus.click();
}

public static void terminatedReportCompletedFocus(InternetExplorerDriver driver)
{
    WebElement terminatedReportCompletedFocus = driver.findElement(By.xpath("//a[contains(@href,'GetTerminatedCompletedReport')]"));    
    terminatedReportCompletedFocus.click();
}

public static void terminatedReportPendingFocus(InternetExplorerDriver driver)
{
    WebElement terminatedReportPendingFocus = driver.findElement(By.xpath("//a[contains(@href,'GetTerminatedPendingReport')]"));
    terminatedReportPendingFocus.click();
}
}

修复-01/12/14

    public static void terminatedReportPendingFocus(InternetExplorerDriver driver)
{
    driver.findElement(By.xpath("//a[contains(text(),'Terminated Report: Completed')]")).sendKeys(Keys.ENTER);      
}

尝试下面的代码,让我知道发生了什么

WebElement Reports = driver.findElement(By.xpath("--------//---As per your code"));
WebElement Asset Management = driver.findElement(By.xpath("--------//---As per your code"));
WebElement Terminated_Report_Pending = driver.findElement(By.xpath("--------//---As per your code"));
        Actions builder = new Actions(driver);
        builder.moveToElement(Reports).perform();
        Thread.sleep(3000);
        builder.moveToElement(Asset Management).perform();
        Terminated_Report_Pending.click();

从下面的代码中尝试

public static void assetManagementFocus(InternetExplorerDriver driver)
{
    WebElement assetManagementFocus = driver.findElement(By.xpath(".//*[text()='Asset Management']"));
    Actions hoverOnReportWindow = new Actions(driver);
    hoverOnReportWindow.moveToElement(assetManagementFocus).build().perform();
    Thread.sleep(3000);
    assetManagementFocus.click();
}

你能提供你的实现代码吗?我有兴趣了解“资产管理”的元素检测方法。你好,鲁佩什,谢谢回复。我已经附上了上面名为“资产管理实施”的实施代码。我已经修改了我的代码,包括手动等待3秒。请测试并让我知道很好,非常感谢。所以,我只需要将这本手册添加到我放在原始便笺上的代码片段中,等待3秒钟?资产管理功能正常工作,所以我不需要对代码的这一部分应用wait命令吗?那太好了。如果您能让我的答案正确,或者对它进行投票,以便其他具有相同问题的用户可以以相同的方式进行修复,我将不胜感激。