【问题标题】:How to mouse over and click on " Mobiles section"如何将鼠标悬停并单击“手机部分”
【发布时间】:2017-06-16 12:34:48
【问题描述】:

移动到电子菜单:

Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//*[@id='container']/div/header/div[2]/div/ul/li[1]/a/span[text()='Electronics']"))).build().perform();

移动移动菜单:

//WebElement mobile = (new WebDriverWait(driver,2)).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='container']/div/header/div[2]/div/ul/li[1]/ul/li/ul/li[1]/ul/li[1]/a/span[1][text]()='Mobiles')")));

点击手机:

// action.moveToElement(driver.findElement(By.xpath("//*[@id='container']/div/header/div[2]/div/ul/li[1]/ul/li/ul/li[1]/ul/li[1]/a/span[1][text]()='Mobiles')"))).click();

WebElement mobile=driver.findElement(By.xpath("html/body/div[1]/div/header/div[2]/div/ul/li[1]/ul/li/ul/li[1]/ul/li[1]/a/span[1][text]()='Mobiles')"));
mobile.click();

尝试了上面的代码,但没有显示错误消息:

Xpath 不存在

【问题讨论】:

  • 你能把突出显示元素的html DOM提供给我们需要鼠标悬停的地方吗?
  • 您好,这是一个flipkart.com 应用程序

标签: selenium xpath selenium-webdriver automation


【解决方案1】:

我们可以将此 xpath 用于移动元素:

//a[@title='Electronics']

鼠标悬停的完整代码:

Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//a[@title='Electronics']"))).click().build().perform();
//Clicking on the mobile tab
driver.findElement(by.xpath("//a[@title='Mobiles']")).click();

希望这对您有所帮助。谢谢。

【讨论】:

  • 嗨,这将我带到移动配件页面需要获取此页面flipkart.com/mobiles?otracker=nmenu_sub_Electronics_0_Mobiles电子(悬停)->电子下方有一个名为“手机”的选项
  • 你的代码将我带到不同的页面flipkart.com/mobile-accessories/…
  • 首先查看我需要将鼠标悬停在“电子”上,然后子菜单可见,然后“手机”显示在“电子”下方
  • 这很好用,你是否使用任何工具来查找唯一的 xpath 或任何元素?请推荐一些工具
  • @Jagaur 我已经使用 chrome 开发工具来编写 xpath。如果这对您有帮助,请接受此作为答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多