элемент не нажимается, даже если он был проверен из выпадающего списка в Selen WebDriver - PullRequest
1 голос
/ 13 февраля 2020

Я пытался выбрать элемент из списка. С помощью приведенного ниже кода он определяет правильный элемент. Но это не нажимает на элемент. Не понимаю, как действовать.

HTML Код

<div id="__test0-defaultXML--idQueueName" data-sap-ui="__test0-defaultXML--idQueueName" style="width: 100%; max-width: 100%;" class="sapMSlt sapMSltDefault sapMSltHoverable sapMSltMinWidth sapMSltWithArrow" aria-labelledby="__label7 __test0-defaultXML--idQueueName-label" role="combobox" aria-disabled="false" aria-expanded="false" tabindex="0">
<input id="__test0-defaultXML--idQueueName-hiddenInput" aria-multiline="false" aria-readonly="true" tabindex="-1" class="sapUiPseudoInvisibleText">
<label id="__test0-defaultXML--idQueueName-label" for="__test0-defaultXML--idQueueName" class="sapMSltLabel" aria-live="polite">- Select -</label>
<span id="__test0-defaultXML--idQueueName-arrow" class="sapMSltArrow"></span>
<ul style="width:100%;max-width:100%" class="sapMSelectList" role="listbox">
<li tabindex="0" class="sapMSelectListItem sapMSelectListItemBase sapMSelectListItemBaseHoverable sapMSelectListItemBaseSelected" role="option" aria-selected="true" aria-setsize="4" aria-posinset="1">- Select -</li>
<li tabindex="0" class="sapMSelectListItem sapMSelectListItemBase sapMSelectListItemBaseHoverable" role="option" aria-selected="false" aria-setsize="4" aria-posinset="2">sap/smtest/test/a1</li>
<li tabindex="0" class="sapMSelectListItem sapMSelectListItemBase sapMSelectListItemBaseHoverable" role="option" aria-selected="false" aria-setsize="4" aria-posinset="3">sap/smtest/test/test</li>
<li tabindex="0" class="sapMSelectListItem sapMSelectListItemBase sapMSelectListItemBaseHoverable" role="option" aria-selected="false" aria-setsize="4" aria-posinset="4">sap/smtest/test/tt</li>
</ul>
</div>


import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;

public boolean selectn() {
    boolean result = false;
    int attempts = 0;
    while(attempts < 1) {
        try {
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
            WebElement list1 = driver.findElement(By.xpath("//*[@id=\"__test0-defaultXML--idQueueName\"]/ul"));
            list1.click();
            List<WebElement> Listnw = list1.findElements(By.tagName("li"));
            for(WebElement li : Listnw) {
                if (li.getText().equals("sap/smtest/test/a1")) {
                    li.click();
                }
            }
            result = true;
            break;
        } catch(StaleElementReferenceException e){
        }
        attempts++;
    }
    return result;
} 

1 Ответ

0 голосов
/ 13 февраля 2020

После WebElement list1 = driver.findElement(By.xpath("//*[@id=\"__test0-defaultXML--idQueueName\"]/ul"));. Пожалуйста, добавьте list1.click(); и посмотрите, работает ли он. Оставьте код ниже как есть.

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