вебдрайвер не нажимает на кнопку - PullRequest
1 голос
/ 11 марта 2011

У меня есть сценарий, в котором, если при наведении курсора мыши на поле отображается кнопка, на которую я хочу нажать. HTML-код выглядит примерно так:

<div class="Box on which hovering i get the button">
  <div class="special button comes only on hovering">

Я использую этот код для нажатия на веб-драйвере, но безуспешно:

(IrenderedWebElement)driver.hover(locatorOfBox)
(IrenderedWebElement)driver.click(special button locator)
if(button.isDisplayed)
driver.click

Я также пытался поместить wait между hover и click, но безрезультатно. Я застрял, поэтому ищу ответы.

Ответы [ 3 ]

1 голос
/ 30 июля 2012

Используйте класс Actions.Вот пример, где элемент подменю «Раунды» отображается только после наведения на элемент меню верхнего уровня «Управление по умолчанию»:

        IWebElement topLevelMenu = driver.FindElement(By.LinkText("DEFAULT MANAGEMENT"));
        var actions = new Actions(driver);
        actions.MoveToElement(topLevelMenu).Perform();
        driver.FindElement(By.LinkText("ROUNDS")).Click();
0 голосов
/ 09 июля 2013

Используйте Xpath (чтобы найти точную кнопку - это помогает, когда идентификатор генерируется автоматически), чтобы нажать на кнопку

driver.findElement(By.xpath("//*[@class='Box on which hovering i get the button']/div")).click();

Надеюсь, что ссылка ниже поможет создать вручную xpath

http://www.guru99.com/accessing-links-tables-selenium-webdriver.html
see under "Reading a Table-->XPath Syntax"
0 голосов
/ 15 марта 2011

Попробуйте щелкнуть первый класс div, а после этого - второй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...