Как нажать на элемент с помощью Selenium через Java - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь выбрать значение из выпадающего списка, используя соседний брат, но не работает

Вот Html:

<div id="dependsOnQuestionDiv"><div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen197" style="width: 17px;"><input type="text" size="24" autocomplete="off" id="dependsOnQuestion" name="dependsOnQuestion" class="x-form-text x-form-field x-trigger-noedit" readonly="" title="" style="width: 345px;"><img src="/mco/extjs/resources/images/default/s.gif" alt="" class="x-form-trigger x-form-arrow-trigger" id="ext-gen198"></div></div>

Я пробовал эти способы:

(xpath =
 "//input[@id='dependsOnQuestion']/following-sibling::img[@id='ext-gen198']"

и

> css = #dependsOnQuestion ~img "

Но он нажимает на другой элемент, у которого есть тег изображения

Вот еще один тег изображения HTML, который кликается, когда я пытаюсь щелкнуть по капле. вниз

<td class="x-grid3-col x-grid3-cell x-grid3-td-edit  x-action-col-cell" style="width: 41px;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-edit x-unselectable" unselectable="on"><img alt="" src="/mco/images/edit-button.png" class="x-action-col-icon x-action-col-0  "></div></td>

<div class="x-grid3-cell-inner x-grid3-col-edit x-unselectable" unselectable="on" xpath="1"><img alt="" src="/mco/images/edit-button.png" class="x-action-col-icon x-action-col-0 " style=""></div>

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 10 января 2020

К click() на элементе, который вы должны вызвать WebDriverWait для elementToBeClickable(), и вы можете использовать любую из следующих Стратегий локатора :

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div#dependsOnQuestionDiv input.x-form-text.x-form-field.x-trigger-noedit#dependsOnQuestion[name='dependsOnQuestion']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='dependsOnQuestionDiv']//input[@class='x-form-text x-form-field x-trigger-noedit' and @id='dependsOnQuestion'][@name='dependsOnQuestion']"))).click();
    
0 голосов
/ 10 января 2020

Попробуйте ниже XPATH вариантов.

xpath = "//img[@id='ext-gen198']/preceding-sibling::input[@id='dependsOnQuestion']"

ИЛИ

 xpath = "//img[@id='ext-gen198']/preceding-sibling::input[1]"
...