我是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();
}
答案 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();