大家下午好,这个问题一直让我考虑对笔记本电脑打孔。在下面的代码中,我只是将鼠标悬停在下拉菜单上,然后从中选择一个链接。现在的问题是,我选择的链接随机出现“元素无法滚动到视图中”。发生这种情况的时间约为50%,从视觉上看,是将鼠标悬停在下拉菜单上,然后屏幕跳下,切断菜单的位置并引发错误。任何帮助将不胜感激。
WebDriverWait waitForDropDown = new WebDriverWait(driver, 5);
waitForDropDown.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Create Test Case")));
Action builder;
Actions hover = new Actions(driver);
WebElement objectOnScreen = driver.findElement(By.linkText("Test Lab"));
hover.moveToElement(objectOnScreen);
builder = hover.build();
builder.perform();
driver.findElement(By.partialLinkText("Create Test Case")).click();
最佳答案
链接如何生成?链接文字可以更改吗?
我建议尝试一下:
Actions hover = new Actions(driver);
WebDriverWait waitForDropDown = new WebDriverWait(driver, 5);
WebElement objectOnScreen = driver.findElement(By.linkText("Test Lab")); //Use a CSS locator, not link text
WebElement objectToClick = driver.findElement(By.partialLinkText("Create Test Case")); //Use a CSS locator, not link text
hover.moveToElement(objectOnScreen).perform();
waitForDropDown.until(ExpectedConditions.elementToBeClickable(objectToClick));
hover.moveToElement(objectToClick).click();
通常,链接文本是一个非常脆弱的定位符,不应使用。 CSS定位器是一个更好的选择。