Selenium WebDriver'da arama metni sonuçlarına nasıl tıklanır

Aug 19 2020

Arama metin kutusunun belirli bir metnine nasıl tıklanır, selenium WebDriver ile sonuçlanır. Benim durumumda arama metin kutusu "Okul" dur.

"Okul" metin kutusunda "RGSchool1" anahtarlarını gönderiyorum ve ardından metin kutusunun altında sonuç olarak göründüğünde "RGScool" a tıklamak istiyorum.

Aşağıdakilerin hepsini "org.openqa.selenium.NoSuchElementException" atarak yaklaştırdım.

  1. Metin girin ve dışarı çıkın
  2. Metni girin ve giriş anahtarını gönderin
  3. Mutlak yol - / html 1 / body 1 / div [7] / ul 1 / li 1 / div 1 / span 1
  4. Göreli yol - // span [@ class = 'select2-match']

HTML gövdesi:

<div class="select2-result-label" style="" xpath="1">
<span class="select2-match">RGSchoo</span>
l1 [rgschool1]</div>

Kod: // Eleman bulma

@FindBy(id = "s2id_User_OrgId")
public WebElement clickJurisdiction;

@FindBy(xpath = "/html[1]/body[1]/div[6]/div[1]/input[1]")
public WebElement keyInJurisdiction;

@FindBy(xpath = "//div[@id='s2id_User_OrgUnitId']//a[@class='select2-        choice']")
public WebElement clickSchool;

@FindBy(xpath = "/html[1]/body[1]/div[7]/div[1]/input[1]")
public WebElement keyInSchool;

@FindBy(xpath = "/html[1]/body[1]/div[7]/ul[1]/li[1]/div[1]")
public WebElement schoolSearchResult2;

Çağrı yöntemi:

public void enterNewUserData() {

    SeleniumTestHelper.enterText(firstName, Config.getProperty("FirstName"));
    SeleniumTestHelper.enterText(middleName, Config.getProperty("MiddleName"));
    SeleniumTestHelper.enterText(lastName, Config.getProperty("LastName"));
    SeleniumTestHelper.enterText(preferredName, Config.getProperty("PreferredName"));
    
    SeleniumTestHelper.clickOnButton(clickJurisdiction);
    SeleniumTestHelper.enterText(keyInJurisdiction, Config.getProperty("Jurisdiction"));
    SeleniumTestHelper.enter(keyInJurisdiction);

    SeleniumTestHelper.clickOnButton(clickSchool);
    SeleniumTestHelper.enterText(keyInSchool, Config.getProperty("School"));
    SeleniumTestHelper.clickOnButton(schoolSearchResult2); // It fails here

Lütfen bir çözüm bulmama yardım edin. Bu tür bir senaryoda yeniyim.

Lütfen aşağıdaki ekli ekran görüntüsüne bakın.

Verileri girmeden önce ekran görüntüsü:

Verileri girdikten sonra ekran görüntüsü

Yanıtlar

DebanjanB Aug 19 2020 at 14:22

RGSchool1 olarak metin içeren öğeyi bulmak için aşağıdaki Konum Belirleme Stratejisini kullanabilirsiniz :

  • CssSelector kullanarak :

    @FindBy(cssSelector = "ul.select2-results div.select2-result-label > span.select2-match")
    public WebElement schoolSearchResult2;
    
  • Xpath kullanarak :

    @FindBy(xpath = "//ul[@class='select2-results']//div[@class='select2-result-label']/span[@class='select2-match']")
    public WebElement schoolSearchResult2;