Утверждение Selenium xpath - PullRequest
       4

Утверждение Selenium xpath

0 голосов
/ 04 декабря 2018

У меня есть конкретное табличное представление, например:
enter image description here

Мне нужно проверить, есть ли конкретные атрибуты: "TNT" / "Еда" / "Другой материал"видны и правильно отображаются (строка в порядке).DOM выглядит довольно ужасно:

    <div class="w-50" style="" xpath="1">
   <div style="">
      <!-- react-text: 231670 -->Categories<!-- /react-text --><!-- react-text: 231671 -->:<!-- /react-text -->
   </div>
   <div style="padding-left: 10px; display: flex;">
      <div style="">Juomat</div>
      <div style="margin-left: auto; margin-right: 100px;">126</div>
   </div>
   <div style="padding-left: 10px; display: flex;">
      <div>TNT</div>
      <div style="margin-left: auto; margin-right: 100px;">2</div>
   </div>
   <div style="padding-left: 10px; display: flex;">
      <div>Food</div>
      <div style="margin-left: auto; margin-right: 100px;">12</div>
   </div>
   <div style="padding-left: 10px; display: flex;">
      <div>Another Stuffs</div>
      <div style="margin-left: auto; margin-right: 100px;">2</div>
   </div>
</div>

Я пытался найти это: // div [@class = 'w-50'] [2] (мы получили два одинаковых класса с w-50) с добавлением слова «содержит» и каким-то образом назовите эти элементы, но для того, чтобы получить текст из него, мне нужно иметь его отдельно.

Можете ли вы сказать мне локатор / ы xpath и как я могу сделать утверждение вэто дело?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я не очень знаком с C #, также я как-то понимаю вашу проблему.

Проблема: проверить, доступен ли / доступен ли список строк (продуктов) на веб-странице.Поправьте меня, если я неправ.

Ниже приведен код Java, конвертируйте его в C #, если логика верна.

    List<String> list = new ArrayList<String>();
    list.add("Juomat");
    list.add("TNT");
    list.add("Food");
    list.add("Another Stuffs");
    // list.add -  add whatever products you needed later (dynamically if needed) 
    list.add("XXX"); 

    String xp = "//div[@class = 'w-50']";

    for(String item: list) {

        try {
                WebElement element = driver.findElement(By.xpath(xp + "/div/div[1][.='"+ item +"']"));
                if(item.equals(element.getText()))
                System.out.println(item +" is Visible");
                }

        catch(Exception e) {
                System.out.println(item + " is not Visible");               
        }           
    }
0 голосов
/ 04 декабря 2018

Это выглядит некрасиво, но

(.//*[@class='w-50']/div/div)[1]

должно нацеливаться на первый элемент в списке, и вы можете утверждать, что у него есть текст 'Juomat'

(.//*[@class='w-50']/div/div)[3]

, нацеленный наследующий элемент в списке, и вы можете утверждать, что у него есть текст 'TNT'

, повторяется для других элементов в списке.Этот локатор также может указывать на номер, если вы хотите

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