#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");