Недостающие методы Get в Selenium - PullRequest
0 голосов
/ 14 октября 2019

Я могу искать или делать что-то не так, но когда я пытаюсь использовать методы GetAttribute или GetText в Selenium, их нет?

так, например, есть ссылка на забытый пароль, которую легко найти с помощью идентификатора, однако над ней есть текст с инструкциями для пользователей, чтобы выбрать кнопку, если они забыли свой пароль. Я надеялся использовать GetText, но это не в моих выпадающих опциях;Мне дают только: GetHashCode, GetType, GetScreenShot. Это в пакете Nuget, которого у меня нет, или он должен быть стандартным с Selenium?

public IWebElement ForgotPasswordText { get { return _driver.gettext(("Please Click Below To Reset Your Password")); } }

Assert.IsTrue(HomePage.ForgotPasswordText.Displayed);

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

GetText отсутствует, тогда как обычно он автоматически заполняется параметром.

1 Ответ

1 голос
/ 14 октября 2019

Насколько я могу судить, вы пытаетесь использовать GetAttribute и GetText для определения местоположения WebElements. Эти методы могут использоваться только для объектов WebElements, которые уже были найдены. Чтобы найти свой элемент ForgotPasswordText, вы можете использовать это:

public IWebElement ForgotPasswordText { get { return _driver.FindElement(By.XPath("//*[text()='Please Click Below To Reset Your Password']")); } }

Это даст вам веб-элемент с текстом «Пожалуйста, нажмите ниже, чтобы сбросить пароль».

Теперь, если вы хотитечтобы получить текст или атрибут WebElement, вот как вы это сделаете:

var webElement = Driver.FindElement(By.XPath("//div[@class='someClass']"));

var text = webElement.Text;
var classAttribute = webElement.GetAttribute("class");
var valueAttribute = webElement.GetAttribute("value");
...