Мне нужно проверить значение, которое находится в текстовом поле валюты Unicef material-ui. Я использую приведенный ниже код, чтобы получить значение в текстовом поле, но значение пусто.
var value = driver.FindElement(By.Id("txtCurrency")).Text;
Если вы проверите поле ввода в приведенном ниже примере, вы увидите, что хотя текст отображается визуально, HTML-атрибут «значение» пуст.
Снимок HTML:
HTML:
<input aria-invalid = "false" type = "text" class = "MuiInputBase-input MuiOutlinedInput-input jss493 jss561 MuiInputBase-inputAdornedStart MuiOutlinedInput-inputAdornedStart" value = "">
Пример URL-адреса, как показано ниже: https://unicef.github.io/material-ui-currency-textfield/#currencytextfield Я хотел бы знать способ получить значение/текст текстового поля ввода.
Проект находится в ReactJs, а Selenium — в C#.
Чтобы получить значение из поля ввода, вам нужно использовать .GetAttribute("value")
Используйте следующий xpath
, чтобы идентифицировать элемент.
var Value =driver.FindElement(By.XPath("//h6[text()='Outlined']/following::input[1]")).GetAttribute("value");
Console.WriteLine(Value);
Или следуйте css selector
var Value =driver.FindElement(By.CssSelector(".MuiInputBase-input.MuiOutlinedInput-input.jss134.jss202.MuiInputBase-inputAdornedStart.MuiOutlinedInput-inputAdornedStart")).GetAttribute("value");
Console.WriteLine(Value);
@shalinds: значение генерируется java-скриптами, поэтому оно пустое. Скопируйте мой код и запустите его, и дайте мне знать, как это происходит.
Желаемый элемент — это элемент с поддержкой ReactJS , поэтому вам нужно вызвать WebDriverWait для желаемого ElementToBeClickable()
, и вы можете использовать любую из следующих стратегий локатора:
XPath и GetAttribute("value")
:
Console.WriteLine(new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//h6[text()='Outlined']//following::div//input[contains(@class, 'MuiInputBase-input')]"))).GetAttribute("value"));
но «значение» @KunduK пусто в HTML-коде при проверке из представления элемента инспектора браузера. GetAttribute("значение") не будет работать, поскольку для атрибута "значение HTML" нет значения?