从两个单独的列表中选择一个特定元素

时间:2018-02-13 08:42:05

标签: java webdriver

请有人帮助以下案例: 也就是说,必须从列表中拾取一个国家,并且一个联盟形成第二个列表。 尝试使用AND功能,但在Selenium中,它会将错误视为不存在的元素,而将其作为两个单独的列表发现,如下所示

国家名单:

List<WebElement> chosenCountry = driver.findElements(By.xpath("//body//be-list[contains(@class, 'ng-star-inserted')]/ul//li/div/span/h4/img"));
    for (int i = 0; i < chosenCountry.size(); i++) {
        // System.out.println(chosenCountry.get(i).getAttribute("title"));
        String country = chosenCountry.get(i).getAttribute("title");
    }

看起来像:

Argentina
Brazil
Chile
Colombia
England
India
International
Iran
Jamaica
Kuwait
Mexico
Scotland

联赛名单:

List<WebElement> chosenLeague = driver.findElements(By.xpath("//body//be-list[contains(@class, 'ng-star-inserted')]/ul//li/div/span"));
    for (int k = 0; k < chosenLeague.size(); k++) {
        // System.out.println(chosenLeague.get(k).getText());
        String league = chosenLeague.get(k).getText();
    }

看起来像:

Primera B Metropolitana
Primera C
Superliga
Paulista A2
State Leagues
Primera B
Primera Division
Championship
League 1
League 2
National League

请注意,这些数据是动态的,因此从 get(i)中拾取所需的元素毫无用处。

尝试使用if子句但没有成功:

if ( chosenCountry.get(i).getAttribute("title").equals("England)||chosenLeague.get(k).getText().equals("Championship") {

它抛出错误而不给我任何选择。 我哪里弄错了? 提前谢谢

1 个答案:

答案 0 :(得分:1)

你错过了if语句中的引文。

这样:

if ( chosenCountry.get(i).getAttribute("title").equals("England)||chosenLeague.get(k).getText().equals("Championship") {

应如下所示:

if ( chosenCountry.get(i).getAttribute("title").equals("England")||chosenLeague.get(k).getText().equals("Championship") {