#java #selenium #selenium-chromedriver
#java #selenium #selenium-chromedriver
Вопрос:
Ну, мой html-код
<button class="header-nav__get-result popupBtn" data-mfp-src="#popupResult" onclick="(dataLayer = window.dataLayer || []).push({'pPath': location.pathname 'virtual/send-results/', 'event': 'GAPageview'});">
<div class="icon-analysis-wrapper">
<svg class="icon icon-analysis" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 203.7 272.16">
<path class="icon-analysis__colba" d="M158.34,238.56,100.88,147v-28.7h20.06V88.49H40.88v29.8H60.72V147L6.22,238.56a20.06,20.06,0,0,0,17.36,30.1H141A20.07,20.07,0,0,0,158.34,238.56Z"></path>
<path class="icon-analysis__liquid" d="M158.34,238.56l-24.73-39.41h0l-5.87-9.35c-13-1.27-26.24-1.44-40.06,1.91-8.5,2.06-13.67,5.08-21.07,8.41a63.6,63.6,0,0,1-26.21,5.73,50.58,50.58,0,0,1-13.69-1.71l-5.13,8.6h0L6.22,238.56a20.06,20.06,0,0,0,17.36,30.1H141A20.07,20.07,0,0,0,158.34,238.56Z"></path>
<path class="icon-analysis__bubble3" d="M200.2,95.32a20,20,0,0,1-40,.9q0-.45,0-.9a20,20,0,0,1,40,0Z"></path>
<path class="icon-analysis__bubble2" d="M166.22,27.65a24.64,24.64,0,1,1-49.27,1q0-.49,0-1a24.64,24.64,0,0,1,49.27,0Z"></path>
<path class="icon-analysis__bubble1" d="M81.51,49a15.41,15.41,0,0,1-30.82,0c0-7.67,6.91-15.41,15.41-15.41A15.42,15.42,0,0,1,81.51,49Z"></path>
<path class="icon-analysis__bubble0" d="M92.28,163.17a10,10,0,1,1-10-10A10,10,0,0,1,92.28,163.17Z"></path>
</svg>
</div>
<span>Get results</span>
</button>
Когда я пытаюсь нажать эту кнопку, это не удается, потому что нажатие не работает.
final By locatorButtonGetResults = By.xpath("//div[@id='bvi-block']/header/div[@class='header-bottom']/button[@class='header-nav__get-result popupBtn']");
WebElement buttonGetResults =
wait.until(ExpectedConditions.elementToBeClickable(locatorButtonGetResults));
final Actions actions = new Actions(driver);
actions.moveToElement(buttonGetResults).click(buttonGetResults).build().perform();
Я попытался щелкнуть, нажав на buttonGetResults и JavascriptExecutor. Оба метода также дают сбой. Что не так? Что я должен сделать, чтобы пройти тест?
Ответ №1:
Эта кнопка открывает увеличительное всплывающее окно. Чтобы открыть это всплывающее окно, мне нужно запустить js script:
jsExecutor.executeScript("$( document ).ready(function() {$.magnificPopup.open({"
"items: {"
"src: '#popupResult'}"
"});});");
Ответ №2:
Обратите внимание, что она <button class="header-nav__get-result popupBtn"
имеет два класса, поэтому выражение xpath /button[@class='header-nav__get-result popupBtn']
не является хорошим способом.
Попробуйте приведенную ниже демонстрацию xpath:
//button[contains(@class, 'header-nav__get-result') and contains(@class, 'popupBtn')]
Или cssSelector:
button.header-nav__get-result.popupBtn
Комментарии:
1. Это не работает. В отладчике она выдает
org.openqa.selenium.NoSuchElementException