В настоящее время я борюсь с Selenium, чтобы выбрать элемент по имени класса. Веб-сайт, который я использую:
http://demo.guru99.com/test/login.html
<div class="col-xs-12 col-sm-6">
<form action="success.html" method="post" id="login_form" class="box">
<h3 class="page-subheading">Already registered?</h3>
<div class="form_content clearfix">
<div class="form-group">
<label for="email">Email address</label>
<input class="is_required validate account_input form-control" data-validate="isEmail" type="text" id="email" name="email" value="">
</div>
<div class="form-group">
<label for="passwd">Password</label>
<span><input class="is_required validate account_input form-control" type="password" data-validate="isPasswd" id="passwd" name="passwd" value=""></span>
</div>
<p class="lost_password form-group"><a href="#" title="Recover your forgotten password" rel="nofollow">Forgot your password?</a></p>
<p class="submit">
<input type="hidden" class="hidden" name="back" value="my-account"> <button type="submit" id="SubmitLogin" name="SubmitLogin" class="button btn btn-default button-medium">
<span>
<i class="icon-lock left"></i>
Sign in
</span>
</button>
</p>
</div>
</form>
</div>
Я выяснил, как выбрать элемент по идентификатору, но всякий раз, когда я пытаюсь выбрать его по имени класса, я получаю исключение не найденный элемент. Я не очень понимаю, как это работает, поскольку я пробовал несколько сайтов без успеха. В этом примере элемент имеет несколько классов, но на некоторых веб-сайтах этот метод даже не работает, когда существует только один класс. На этом сайте работает только один класс, но я читал, что это не очень хороший метод, так как вы можете выбрать несколько элементов по ошибке.
IWebElement search = driver.FindElement(By.ClassName("account_input"));
Вот мой код:
driver = new ChromeDriver();
driver.Url = "http://demo.guru99.com/test/login.html";
driver.Navigate();
IWebElement search = driver.FindElement(By.ClassName("is_required.validate.account_input.form-control"));
search.SendKeys("test");
В этом примере выбор элемента по Id с использованием метода By.Id ("first_name") также не работает:
<span>
<label class="first_name_label form_label_text"></label>
<div class="clear"></div>
<div class="form-item icon">
<input value="" data-error="An error has occured." id="first_name" type="text" name="first_name" class="form_item is_required" placeholder="First Name">
<i style="color:rgba(70,75,106,0.5)" class="vs icon-user"></i> </div>
<div class="form-item icon">
<input value="" data-error="An error has occured." id="last_name" type="text" name="last_name" class="form_item is_required" placeholder="Last Name">
<i style="color:rgba(70,75,106,0.5)" class="vs icon-user"></i> </div>
<div class="clear"></div>
</span>
Что я делаю неправильно? Помощь будет принята с благодарностью