我用java编写了一个简单的代码,将鼠标指针移动到网站的菜单栏。当鼠标在“Demo page 1”上移动时,它的子菜单打开,然后我可以点击“Demo page 4”。该代码在我的笔记本电脑上完美运行。
因为我的笔记本电脑有点慢,所以我把代码移到了我的联想电脑上。现在,当我运行代码时,未显示打开的菜单。令人惊讶的是,鼠标在后台移动到“Demo page 1”,因为它的地址显示在状态栏中,但是由于没有显示打开的菜单,我不能使用 click() 方法打开“Demo page 4”,因为它是不可见的。代码在这里:
// DemoPage11 is the xpath of "Demo Page 1" which is an item in the main menu
String DemoPage11 = "//*[@id='access']//div[3]//ul//li[2]//a";
// DemoPage114 is the xpath of "Demo Page 4" which is a sub-menu of "Demo Page 1"
String DemoPage114 = "//*[@id='access']//div[3]//ul//li[2]//ul//li//a";
ProfilesIni allProf = new ProfilesIni();
FirefoxProfile p = allProf.getProfile("default");
p.setEnableNativeEvents(true);
WebDriver wd1 = new FirefoxDriver(p);
// I use driver for scrolling the page and it works perfectly
EventFiringWebDriver driver = new EventFiringWebDriver(wd1);
wd1.get("http://benchmarkazure.cloudapp.net/wordpress/");
wd1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Actions builder = new Actions(wd1);
builder.moveToElement(wd1.findElement(By.xpath(DemoPage11))).build().perform();
WebElement weDemoPage114 = (new WebDriverWait(wd1, 30)).until(ExpectedConditions.presenceOfElementLocated(By.xpath(DemoPage114)));
wd1.findElement(By.xpath(DemoPage114)).click();
wd1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
不幸的是,我不允许上传图片来澄清。如果您可以帮助我,并且需要在我的笔记本电脑与联想 PC 中查看结果的屏幕截图,请给我您的电子邮件地址,然后我会为您发送。
我真的很感谢你很快的回复,因为我必须尽快完成它。谢谢阿米尔