Gallagher
(Gallagher)
18.Март.2019 08:03:13
#1
как достучаться до элементов без id
Мне необходимо проверить что регистрация успешная… Соответственно я проверяю соответствие строки " Учетная запись на сайте site.ru создана! "
По всякому уже пытался сделать, но верстал какой то тормоз очевидно
Искал и по классу и по css селектору
Как вообще в таких ситуациях поступать, ссылку дайте может на статью какую
Код
<div class="contentbar cabinet" id="content">
<h1 class="page_title text-center">Завершение регистрации</h1>
<div class="well">
<div class="row">
<div class="col-md-5 col-md-offset-4">
<p class="lead text-success"><b>Учетная запись на сайте site.ru создана!</b></p>
<p class="lead">Данные для входа (логин и пароль) и ссылка для подтверждения email отправлены на ivan.ivanov771110007@gmail.com. После перехода по ссылке Вы сможете авторизоваться на сайте и воспользоваться дополнительными сервисами.</p>
<p class="lead"><b>ВНИМАНИЕ!</b> Ссылка действительна в течение 10-ти дней. Если не осуществить переход в этот срок, потребуется повторная регистрация.</p>
</div>
<div class="col-md-6 col-md-offset-3 text-center">
<a href="/register/create#student" class="btn btn-danger btn-lg"><br>Регистрация еще одного студента<br> </a>
</div>
</div>
</div>
</div>
MOSTOR
18.Март.2019 08:41:05
#2
//p[contains(@class ,‘text-success’)]/b
Gallagher
(Gallagher)
18.Март.2019 08:47:32
#3
Добрался через By.cssSelector(".lead.text-success") … коллеги программисты подсказали ))
VatslauX
(Vatslau)
18.Март.2019 13:46:51
#4
Gallagher
(Gallagher)
18.Март.2019 13:56:16
#5
Проблемма возникла другая теперь!
Есть список
<select id="discipline" multiple="" name="discipline[]" type="text" class="form-control select2-hidden-accessible" data-old="" style="width: 100%" tabindex="-1" aria-hidden="true">
<option value="34516">3-D конструирование</option>
<option value="28722">CASE технологии</option>
</select>
Надо заполнить поле …
Select discipline = new Select(driver.findElements(By.id("discipline")).get(0));
discipline.selectByValue("28722");
Пишет
Cannot locate option with value: 34516
Gallagher
(Gallagher)
18.Март.2019 14:27:56
#6
И вообще какой то странный список!
Сейчас вообще отображается так
<span class="select2-selection select2-selection--multiple" role="combobox" aria-haspopup="true" aria-expanded="true" tabindex="-1" aria-owns="select2-discipline-results">
<ul class="select2-selection__rendered">
<li class="select2-selection__choice" title="3-D конструирование">
<span class="select2-selection__choice__remove" role="presentation">×</span>3-D конструирование</li>
<li class="select2-search select2-search--inline">
<input class="select2-search__field" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" placeholder="" style="width: 0.75em;"></li>
</ul></span>
VatslauX
(Vatslau)
18.Март.2019 14:33:50
#7
нужно прочесть инфу по ссылкам - отпадет 99% вопросов
Gallagher
(Gallagher)
18.Март.2019 15:20:04
#9
не пойму как выбрать дисциплину https://goo.gl/h2Hkzj
VatslauX
(Vatslau)
18.Март.2019 15:40:44
#10
1 клик в инпут
2 вводишь название
3 клик на тот элемент который подсвечен (у него атрибут содержит results__option–highlighted)
Gallagher
(Gallagher)
18.Март.2019 15:43:27
#11
Название подгружается, его не возможно ввести…
kasheylm
(Denis Veselovskiy)
18.Март.2019 15:43:49
#12
С такой постановкой вопросов очень сомневаюсь что вам
… коллеги программисты
будт помагать в принципе
А по поводу локатора - так он элементарный в вашем случае.
VatslauX
(Vatslau)
18.Март.2019 15:46:10
#13
е[quote=“Gallagher, post:11, topic:22354, full:true”]
Название подгружается, его не возможно ввести…
[/quote]
ждать нужно пока загрузится
если это ангуляр(у меня были похожие селекты пару лет назад) - то будет работать
дебажить быстро можно в каталон рекордере по началу
Gallagher
(Gallagher)
18.Март.2019 15:49:19
#14
Не, это ларавел … пишет
idea
Index 0 out of bounds for length 0
VatslauX
(Vatslau)
18.Март.2019 16:01:16
#15
к сожалению навыками фикса ошибки по кусочку стектрейса пока не овладел
используйте рекордер любой
по началу это будет быстрее и проще для дебага локаторов
экспорт семплов кода обычно тоже везде есть
ПС пока нет ни одного пруфа что вы попали в нужный элемент
Gallagher
(Gallagher)
19.Март.2019 08:02:29
#16
Как достучаться до этого поля к примеру через xpath?
<li class="select2-results__option" role="treeitem" aria-selected="false">Web-дизайн</li>
WebElement dis = driver.findElement(By.cssSelector("ul.select2-selection__rendered"));
dis.click();
WebDriverWait wait = new WebDriverWait(driver, 100);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("[.//li[text() = 'Web-дизайн']]"))).click();
Gallagher
(Gallagher)
19.Март.2019 08:48:55
#17
Так тоже пробовал
driver.findElement(By.xpath("//ul[@class = 'select2-results__option select2-results__option--highlighted'][5]")).click();
пишет
no such element: Unable to locate element: {"method":"xpath","selector":"//ul[@class = 'select2-results__option select2-results__option--highlighted'][5]"}
Gallagher
(Gallagher)
19.Март.2019 09:02:06
#18
Так пробовал
WebElement dis = driver.findElement(By.cssSelector("ul.select2-selection__rendered"));
dis.click();
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='select2-discipline-results']/li/[2]"))).click();
// driver.findElement(By.xpath("//*[@id='select2-discipline-results']/li/[2]")).click();
И так пробовал
WebElement dis = driver.findElement(By.cssSelector("ul.select2-selection__rendered"));
dis.click();
// WebDriverWait wait = new WebDriverWait(driver, 10);
// wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='select2-discipline-results']/li/[2]"))).click();
driver.findElement(By.xpath("//*[@id='select2-discipline-results']/li/[2]")).click();
MOSTOR
19.Март.2019 09:05:42
#19
Хватит спамить, скинь нормальный кусок ДОМа и напиши проблему
Gallagher
(Gallagher)
19.Март.2019 09:17:32
#20
Проблема та же что и была! Чуть продвинулся.
Как выбрать элемент из списка?
Сайт
не пойму как выбрать дисциплину https://goo.gl/h2Hkzj
вот мой код
WebElement dis = driver.findElement(By.cssSelector("ul.select2-selection__rendered"));
dis.click();
// WebDriverWait wait = new WebDriverWait(driver, 10);
// wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='select2-discipline-results']/li/[2]"))).click();
driver.findElement(By.xpath("//*[@id='select2-discipline-results']/li/[2]")).click();