Как получить имя класса css с помощью Selenium?

#java #selenium #css-selectors

#java #селен #css-селекторы

Вопрос:

Я новичок в тестировании selenium. Я хочу получить имя класса css с помощью selenium. Я использую eclipse и Java для разработки.

 <table >
<tr class="odd"><td>Odd row</td></tr>
<tr class="even"><td>Even row</td></tr>
<tr class="odd"><td>Odd row2</td></tr>
<tr class="even"><td>Even row2</td></tr>       
</table>
  

Есть ли какой-либо способ получить имя класса «нечетное» или «четное» с помощью selenium? Я

Ответ №1:

Из a WebElement вы можете использовать getAttribute метод, подобный этому:

 element.getAttribute("class")
  

Ответ №2:

Да, вы можете использовать getAttribute(attributeLocator) функцию для вашего требования.

  selenium.getAttribute(//xpath@class);
  

Укажите Xpath элемента, для которого вам требуется знать класс.

Спасибо.

Ответ №3:

Ничто не зависит от eclipse или java, на самом деле это больше касается стратегии размещения. Если вы хотите получить доступ к определенному элементу tr с / без класса css, вы можете использовать css locator:

css=tr:nth(indx_base_0)

n-я строка с классом

css=tr.odd:nth(indx_base_0)

первая строка с классом odd

css=tr.odd

Использование xpath:

 //tr[index_base_1]
  

первая строка с классом odd

 //tr[@class='odd']
  

n-я строка с нечетным классом

 //tr[@class='odd'][index_base_1]
  

Вот несколько полезных примеров

Ответ №4:

В контексте фрагмента кода, скажем, вы хотите получить класс «odd» для первой строки в таблице.
Вы можете выполнить следующие шаги:
(Примечание: — Предполагается, что на вашей веб-странице есть одна таблица)

1- Сначала получить элемент:

WebElement ele = driver.findElement(By.xpath("//table/tr[1]"));

Приведенный выше код использует xpath для получения элемента, то есть первой строки таблицы.

2- Затем получите атрибут «class» элемента, используя метод «getAttribute»:

Строка class_name = ele.getAttribute("класс");

Приведенный выше код извлечет имя «class» связанного элемента и присвоит его строковой переменной «class_name» для дальнейшего использования

Аналогично, для получения «четного» класса, который является атрибутом для четвертой строки таблицы, вы можете использовать приведенный ниже код:

ele = driver.findElement(By.xpath("//table/tr[4]"));
имя_класса = ele.getAttribute("класс");

Ответ №5:

Если CSS является вашим требованием, и при отсутствии дополнительных / отличительных атрибутов элемента, попробуйте следующее (в примере я использовал простые текстовые утверждения):

 assertEquals(selenium.getText("css=tr.odd > td"), "Odd row");
assertEquals(selenium.getText("css=tr.even > td"), "Even row");
assertEquals(selenium.getText("//tr[3]/td"), "Odd row2");
assertEquals(selenium.getText("//tr[4]/td"), "Even row2");
  

Ответ №6:

Получение имени класса CSS с помощью Selenium с использованием C#:

 string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");