Нажмите элемент по значению - транспортир

Я нажимаю на модальное окно, которое довольно просто. В общем, важна только эта часть:

<div id="partSelection">
   <button value="0" name="partSelection">BLATNÍK P L</button>
   <button value="1" name="partSelection">BLATNÍK P P</button>

Мне нужно нажать на одну из этой кнопки, я знаю, как нажать эту кнопку с помощью: xpath:

element(by.xpath('//*[@id="partSelection"]/button[2]')).click();

также способ с текстом кнопки:

element(by.buttonText("BLATNÍK P P")).click();

но я заметил там разные значения для каждой кнопки, и я верю, что это не изменится разработчиками. Есть ли способ, как нажать элементную базу по значению?

Спасибо за ваши советы.

2 ответа

Решение

Добавление к существующему ответу.

Вы можете решить это, используя следующий CSS-селектор:

element(by.css("#partSelection button[value=0]")).click();

Или, используя by.xpath() локатор:

element(by.xpath("//div[@id='partSelection']/button[@value='0']")).click();

Обратите внимание, что если вы собираетесь часто использовать технику "по стоимости", чтобы следовать принципу СУХОЙ, было бы неплохо определить пользовательский by.value() локатор:

Этот пример должен работать, если вы хотите просто посмотреть определенный атрибут. Я обычно обращаюсь к этим селекторам CSS, когда пытаюсь найти лучший способ найти определенный атрибут.

по сути, это поиск нужного тега, в нашем случае мы хотим кнопку, а затем мы хотим найти атрибут внутри этого тега. Таким образом, у нас есть выбор значения или имени. Имя одинаково для обеих кнопок, поэтому мы не хотим его использовать. Однако значение отличается для каждой кнопки, так что было бы хорошо использовать в этом случае.

element(by.ccs('tag[attribute=""]');

тег = кнопка

атрибут = значение

element(by.css('button[value="0"]')).click(); // button with text BLATNÍK P L 
element(by.css('button[value="1"]')).click(); // button with text BLATNÍK P P
Другие вопросы по тегам