Как нажать на элемент кнопки - PullRequest
0 голосов
/ 15 октября 2018

Как нажать на элемент кнопки?

Вот HTML:

<button class="ui-button ui-widget ui-state-default ui-corner-all ui- 
button-icon-only ui-dialog-titlebar-close" type="button" role="button" 
aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span>
<span class="ui-button-text">close</span>
</button>

Ошибка «Элемент не активен в точке (1165.88330078125, 427.76666259765625). Другой элемент будетполучить щелчок: Длительность команды или время ожидания: 77 миллисекунд "

Я на Selenium 2.53.1, если это поможет.

Я использую Java для написания сценариев автоматизации.

1 Ответ

0 голосов
/ 16 октября 2018

Чтобы щелкнуть по нужному элементу, вам нужно вызвать WebDriverWait , чтобы требуемый элемент был активным для кликабельного , и вы можете использовать любое из следующих решений:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-icon-only.ui-dialog-titlebar-close[title='close']>span.ui-button-text"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close' and @title='close']/span[@class='ui-button-text' and contains(.,'close')]"))).click();
    
...