Нажмите элемент по значению - транспортир
Я нажимаю на модальное окно, которое довольно просто. В общем, важна только эта часть:
<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