【问题标题】:Selenium Tooltip Mouseover not workingSelenium 工具提示鼠标悬停不起作用
【发布时间】:2017-02-01 11:29:58
【问题描述】:

我有一个由 jquery 通过验证添加的引导工具提示。我需要在 Selenium 上对其进行测试(工具提示它不会由 Selenium 弹出)。我尝试了所有方法,但没有运气。

我正在使用 Firefox 51v。和 Maven 版本:

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>2.53.0</version>
  <scope>test</scope>
</dependency>

HTML 代码:

<input id="ele-id" class="text-right red-tooltip" maxlength="10" ng-change="validateFun()" data-original-title="" title="" type="text">

在 Javascript 中:

$('#ele-id').tooltip({title: 'Must be between 0 and 1', placement: 'right'});

和我的 Java 测试代码:

WebElement element = driver.findElement(By.id("ele-id"));
String initialVal = element.getAttribute("value");
element.clear();
element.sendKeys("-1");
//element.click();
Actions action = new Actions(driver);
//action.moveToElement(element).build().perform();
action.clickAndHold(element).perform();
//JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", element);
Thread.sleep(2000);
WebElement toolTipElement = driver.findElement(By.className("tooltip"));
String toolTipText = toolTipElement.getText();
Assert.assertEquals("Must be between 0 and 1", toolTipText);

对于我在此处粘贴的更多代码,我深表歉意,我也尝试过注释代码。

【问题讨论】:

  • 所以当您单击元素或将鼠标悬停时会出现工具提示,就像 stackoverflow 网站上的标签一样。
  • @GaurangShah - 当我手动将鼠标悬停在文本框上时,会出现工具提示。虽然手动测试时间我提出了测试用例是成功的。
  • 我的问题是,工具提示需要单击或鼠标悬停吗?
  • 鼠标悬停会更好。
  • 那你可以试试鼠标而不是点击吗?

标签: javascript java jquery selenium


【解决方案1】:

尝试鼠标悬停事件

Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();

【讨论】:

  • org.openqa.selenium.UnsupportedCommandException: POST /session/fca599f1-d041-4eb3-b532-4fe8ce7968b8/moveto 与已知命令不匹配
  • @Rajesh webdriver 存在问题,但它适用于 geckodriver。 github.com/SeleniumHQ/selenium/issues/3287
【解决方案2】:

我没有聚焦并再次聚焦元素,以便能够阅读工具提示。

JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("document.getElementById('ITEM_SMOOTHING_DEFAULT-value').blur();");
executor.executeScript("document.getElementById('ITEM_SMOOTHING_DEFAULT-value').focus();");
WebElement toolTipElement = driver.findElement(By.className("tooltip"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2019-09-22
    • 1970-01-01
    相关资源
    最近更新 更多