当前位置: 首页 > 知识库问答 >
问题:

如何在selenium WebDriver中点击搜索文本结果

伏欣悦
2023-03-14

如何在SeleniumWebDriver中单击搜索文本框结果的特定文本。在我的例子中,搜索文本框是“学校”。

我正在发送文本框“School”中的键“RGSchool1”,然后我想在文本框下显示为结果时单击“RGScool”。

我尝试了以下所有接近它的投掷"org.openqa.selenium.NoSuchElementExc0019"

  1. 输入文本和标签输出
  2. 输入文本并发送回车键
  3. 绝对路径- /html1/body1/div[7]/ul1/li1/div1/span1
  4. 相对路径-//span[@class='select2-Match']

HTML正文:

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

代码://查找元素

@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;

调用方法:

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

请帮我找到解决办法。我不熟悉这种情况。

请参阅下面附带的屏幕截图。

输入数据前的屏幕截图:

输入数据后的屏幕截图

共有1个答案

梁丘弘
2023-03-14

要定位文本为RG1的元素,可以使用以下定位器策略:

>

  • 使用cssSseltor:

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

    使用xpath:

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

  •  类似资料:
    • 在Elasticsearch中,您可以执行返回点击的搜索,同时在一个响应中返回与点击分开的聚合结果。这是非常强大和有效的,因为您可以运行查询和多个聚合,并一次获得两个(或其中一个)操作的结果,避免使用简洁和简化的API进行网络往返。 我想执行搜索,当我对聚合有查询时返回点击。但我不确定如何才能做到以上几点? 我正在使用以下查询:

    • 问题内容: 我正在尝试在名为“ abc”的字段中搜索“ efg” c是Collection对象。我没有任何结果。我究竟做错了什么? 问题答案: 您正在生成,但查询应如下所示: 因此,尝试将代码更新为: 请记住,要使用搜索,您需要指定一个索引。查阅说明如何使用该文档的文档:http : //docs.mongodb.org/manual/reference/operator/query/text/

    • 我正在使用Mongoostic,它工作得很好,但我面临的问题是,如何从方法并将其传递给方法? 例如: 你们是怎么解决这个问题的?这是一个非常基本的搜索,用户搜索时,它会将用户重定向到另一个页面,在那里它要么显示已找到的结果,要么未找到。

    • 问题内容: 我是Lucene的新手,在创建 用于查询文本文件集合的 简单代码时遇到一些问题。 我尝试了此示例,但与新版本的Lucene不兼容。 UDPATE: 这是我的新代码,但是仍然无法使用。 问题答案: Lucene是一个相当大的主题,涉及很多类和方法,通常您必须至少了解一些基本概念才能使用它。如果您需要快速可用的服务,请改用Solr。如果您需要对Lucene的完全控制,请继续阅读。我将介绍一

    • 问题内容: 我想检查字符串是否在文本文件中。如果是,请执行X。否则,请执行Y。但是,True由于某些原因,此代码始终返回。谁能看到错在哪里? 问题答案: 你一直得到的原因已经给出,因此我只提供另一个建议: 如果你的文件不是太大,则可以将其读取为字符串,然后使用它(比读取和检查每行更容易,并且通常更快): 另一个技巧:通过使用创建使用基础文件的“字符串状”对象(而不是读取内存中的整个文件),可以减轻

    • 如何在appium中点击textview中文本链接 为了前任。我有一个字符串而没有一个帐户?注册表 只有注册有一个链接其他文本是禁用的,当我点击注册它导航到注册屏幕。 但我不能点击注册。