试图将鼠标悬停在菜单上,然后点击子菜单中的链接,但没有运气

时间:2018-05-21 20:48:06

标签: selenium selenium-webdriver

我正在学习将鼠标悬停在菜单上并点击子菜单中的链接。

该方案是转到网址" https://www.amazon.in",将鼠标悬停在" Hello登录"然后点击链接"从这里开始"。

我可以将鼠标悬停在"你好登录"使用moveToElement()和子菜单打开,但无法点击链接"从这里开始"。

这是我的代码。

WebElement signUp = driver.findElement(By.id("nav-link-yourAccount"));
Actions action = new Actions(driver);
action.moveToElement(signUp).build().perform();

WebElement startHere = 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Start here")));
startHere.click();

2 个答案:

答案 0 :(得分:1)

链接文字在最后包含一个点,您在代码中错过了它,请尝试By.linkText("Start here.")By.partialLinkText("Start here")

答案 1 :(得分:1)

要访问网址https://www.amazon.in,请将鼠标悬停在 Hello登录上,然后点击链接从此处开始。您必须诱导 WebDriverWait < / em>对于文本为 Hello登录的元素可见,然后鼠标悬停,然后为该元素引入 WebDriverWait 文字为从这里开始。 可点击,您可以使用以下解决方案:

  • 代码块:

    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    driver.get("https://www.amazon.in/");
    WebElement signUp = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("nav-link-yourAccount")));
    new Actions(driver).moveToElement(signUp).build().perform();
    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.linkText("Start here."))).click();
    
  • 浏览器快照:

amazon_in