для родительского элемента есть два дочерних элемента. Если .text () ребенка 1 соответствует, как выполнить действие на Child2 - PullRequest
1 голос
/ 08 апреля 2020

Элемент определяется следующим образом:

<div class ="frm-group'> 
   <label  class ="ng.binding" "Source Environment" ..... </label>
   <select class "ng-touched" ...... </select>
</div>
<div class ="frm-group'> 
   <label  class ="ng.binding" "Target Environment" ..... </label>
   <select class "ng-touched" ...... </select>
</div>

Класс Div является родительским классом, а класс "lable" и "select" является дочерним классом.

Постановка задачи: У меня есть сделать следующее :: Если Label.getText () совпадает со строкой, затем щелкнуть соответствующий класс выбора и выполнить действие.

Я фиксирую все элементы класса lable в одном LIst WebElement,

ниже мой код:

public void add inputs(){
// here I will get two elements int the list
   List<Webelement> labels = BrowserFactory.getdriver().findElements(By.xPath("//div/label[@class='ng.binding']")
// here I will get two elements related to select in the list
List<Webelement> selectDropdown= BrowserFactory.getdriver().findElements(By.xPath("//div/select[@class='ng-touched']")

for (Webelement label: labels )
{
if (label.getText().equals("Target Environment"))
{
// here I have to click the select(dropdown) of the matched label i.e Target Environement' select class
}
}
}

Помогите, pelase ..

1 Ответ

1 голос
/ 08 апреля 2020

Используйте следующее xpath, которое найдет following-sibling select

if (label.getText().equals("Target Environment"))
        {
           label.findElement(By.xpath("./following-sibling::select[1]")).click();
        }

Или

if (label.getText().equals("Target Environment"))
        {
           label.findElement(By.xpath("./following::select[1]")).click();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...