Selenium Webdriver Java

问题描述 投票:1回答:6

我在Selenium Webdriver Java中查询了鼠标悬停操作。

考虑我有一个id为“Lfade”的背景图片,不透明度为0.5。如果我将鼠标悬停在鼠标上,则会显示一个按钮。

我想点击按钮将我带到另一个屏幕。我该怎么做呢 ???

我试过这个,但它不起作用

Actions builder = new Actions(driver);
WebElement tagElement = driver.findElement(By.id("Lfade"));
builder.moveToElement(tagElement).build().perform();

HTML

div id="homeslant"
div id="wrapper"
div id="lFade" class="learn" style="opacity: 0.5; visibility: visible;"

按键

div class="descbtn"
a class="btn dwmbutton" href="/learn/index.html">KNOW MORE</a>
selenium-webdriver
6个回答
2
投票

不确定你要做什么,但我注意到这里有一个错误:

builder.moveToElement(tagElement).build().perform();

实际上,.perform()包括.build()

可能你指的是.click()所以

builder.moveToElement(tagElement).click().perform()

作为您的目标模式,我会:

  • 找到第一张图片
  • 移动到图像
  • 等待
  • 找到按钮
  • 单击按钮

0
投票

我使用Robot类进行鼠标悬停。请尝试以下代码。

Robot robot = new Robot(); Point MyPoint = tagElement.getLocation(); robot.mouseMove(MyPoint.getX(), MyPoint.getY());

之后使用正常的硒点击按钮。


0
投票

您需要移动按钮并执行单击。

  1. 移动到图像
  2. 等待
  3. 移动按钮并单击 Actions act = new Actions(driver); WebElement tagElement = driver.findElement(By.id(“Lfade”)); 。act.moveToElement(tagElement)。单击()建立()执行(); WebElement _button = driver.findElement(By ...); act.moveToElement(_button)。单击()建立()执行()。;

0
投票

试试这个

@FindBy(xpath="//*[@id='chromemenu']/span/a") WebElement menuHoverLink;
@FindBy(xpath="//*[@id='dropmenu1']/a[1]") WebElement subLink;
Actions maction = new Actions(driver);
maction.moveToElement(menuHoverLink).build().perform();
Thread.sleep(2000);
subLink.click();

0
投票

使用此代码它将起作用:

Actions builder = new Actions(driver);
WebElement tagElement = driver.findElement(By.id("Lfade"));
WebElement buttonElement = driver.findElement(By.classname("btn"));
builder.moveToElement(tagElement).moveToElement(buttonElement).click().perform();

0
投票

试试这个

public void HoverAndClickObject(WebDriver driver, String property1, String property2, String path) throws SAXException, IOException, ParserConfigurationException
        {
            //get object properties from the xml file repository
            Actions action = new Actions(driver);
            String[] element1 = xmlParser(path, property1);
            String[] element2 = xmlParser(path, property2);
            switch (element1[0].toUpperCase())
              {
                  case "XPATH":
                      driver.findElement(By.xpath(element1[1])).click();    
                      action.moveToElement(driver.findElement(By.xpath(element2[1]))).click().build().perform();
                      break;

                  case "ID":
                      driver.findElement(By.id(element1[1])).click();
                      break;

                  case "NAME":
                      driver.findElement(By.name(element1[1])).click(); 
                      break;

                  case "LINKTEXT":
                      driver.findElement(By.linkText(element1[1])).click();
                      break;

                  case "CSSSELECTOR":
                      driver.findElement(By.cssSelector(element1[1])).click();
                      break;

              }


        }
© www.soinside.com 2019 - 2024. All rights reserved.