使用Selenium Webdriver在网页中移动鼠标

时间:2016-06-17 09:51:53

标签: java selenium selenium-webdriver

我是Selenium webdriver的初学者。我试图在this网站

中自动执行操作

在网页中,我想将光标移动到"按类别购物" - >"手机和平板电脑" - >然后点击链接&#34 ; Android手机"。但无法看到Android手机点击的链接。

你能指导我吗,谢谢。

以下是代码,

public static void main(String args[]){
    WebElement oEle1,oEle2;
    System.setProperty("webdriver.ie.driver","C:\\Users\\1003061\\Documents\\Automation testing\\selenium softwares\\IEDriverServer_Win32_2.53.0\\IEDriverServer.exe");
    WebDriver driver=new InternetExplorerDriver();
    driver.manage().window().maximize();
    driver.get("http://www.amazon.in/");
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    Actions oMouse=new Actions(driver);
    oEle1=driver.findElement(By.xpath("//*[contains(text(),'Category')]"));
    oMouse.moveToElement(oEle1).build().perform();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    oEle2=driver.findElement(By.xpath("//*[@aria-label='Mobiles & Tablets']/span[contains(text(),'Mobiles & Tablets')]"));
    oMouse.moveToElement(oEle2).build().perform();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.findElement(By.xpath("//a[contains(@href,'android_mobiles')]")).click();

}

2 个答案:

答案 0 :(得分:2)

如果我是你,我不会打扰这个网站的下拉结构。我只需执行一个javascript命令来点击你想要的选项。

WebElement element = driver.findElement(By.xpath("//a[contains(@href,'android_mobiles')]"))
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

答案 1 :(得分:0)

可能菜单布局在过去几个月内发生了变化

我编写了一个python脚本来将光标导航到“所有移动”子项目菜单

action =  ActionChains(driver);

首先,我使用元素ID将光标移动到“按类别购物”

category = driver.find_element_by_id('nav-link-shopall')

action.move_to_element(category);
action.perform();

sleep(0.1)

然后,使用find_element_by_xpath,我可以找到标签为“Mobiles,Computers”的span元素

< span class =“nav-hasPanel nav-item”data-nav-panelkey =“PhonesAccessoriesPanel”role =“navigation”aria-label =“Mobiles,Computers”> < span class =“nav-text”> Mobiles,Computers< /跨度> < /跨度>

mobile = driver.find_element_by_xpath("//*[span='Mobiles, Computers']")


action.move_to_element(mobile);
action.perform();

sleep(0.1)

最后

< span class =“nav-text”>所有移动电话< / span>

allmobile = driver.find_element_by_xpath("//*[span='All Mobile Phones']")


action.move_to_element(allmobile);
action.perform();

sleep(0.1)
allmobile.click();