#java #selenium #selenium-webdriver
#java #селен #selenium-webdriver
Вопрос:
Его всплывающее окно наложения div выглядит следующим образом:
<div class="tutorial-button tutorial-button-ok tt-close">Later</div>
исходный код выглядит так:
<a class="match-button match-button-close" href="javascript:void(0);" onclick="matchingLayerClose();">
<i class="material-icons match-button-icon">close</i> Later
</a>
Я хотел бы найти элемент либо по cssSelector, className, либо по тексту ссылки «Позже», не имеет значения
Я пытался:
By.className("tutorial-button tutorial-button-ok tt-close");
By.cssSelector("div[class='tutorial-button tutorial-button-ok tt-close']");
By.xpath("//*[contains(text(), 'Later')]"))
By.xpath("//a[contains(.,'Later')]"))
который отлично работает с другими элементами. пожалуйста, помогите
Комментарии:
1. Не могли бы вы, пожалуйста, прояснить свой вопрос немного подробнее?
2. Вам нужно более конкретно объяснить, что означает «не работает». Вам нужно отредактировать свой вопрос и добавить сообщения об ошибках / исключениях для каждой попытки. Я могу сказать вам, что первый,
By.className()
, не будет работать, потому что вы вводите 3 имени класса, когда можете использовать только 1. Второй вариант не очень похож на CSS… так и должно бытьdiv.tutorial-button.tutorial-button-ok.tt-close
. Третий, вероятно, не сработал, потому что есть несколько элементов, которые соответствуют этому локатору. 4-й, вероятно, не сработал, потому что в теге есть другие вещиA
, которые мешаютcontains()
.3. Попробуйте
By.xpath("//div[.='Later']")
или, можетBy.xpath("//div[contains(.,'Later')]")
быть. Если они не работают, это, вероятно, внутриIFRAME
. После того, как вы все это изучили, отредактируйте свой вопрос и добавьте результаты.4. Спасибо, что поделились своими знаниями! Особенно @JeffC за то, что прояснил ситуацию. для меня это довольно ново.
5.
By.xpath("//*[contains(text(), 'Later')]"
в конце концов, я просто обернул его в условный. теперь я чувствую себя глупо
Ответ №1:
Вы можете попробовать селектор CSS, например
div.tutorial-button.tutorial-button-ok.tt-close
или XPath, подобный
//div[.='Later']
//div[contains(.,'Later')]