Мне нужно найти «Подтвердить» и нажать.
<div class="sidebar-element-confirm">
<ui-button class="btn btn-xm sidebar-element-confirm" type="button">
Confirm
</ui-button>
</div>
Мои решения (ни одно из них не работает - нет исключений, нет ошибок):
private val element1 = "//div[@class='sidebar-element-confirm']/ui-button[contains(text(),'Confirm')]"
private val element2 = "//div[@class='sidebar-element-confirm']/ui-button[@type='button']"
driver.findElement(By.xpath(element1)) --does not work
driver.findElement(By.xpath(element2)) --does not work
МожетСкажите, пожалуйста, что не так с моим XPath?
Обновлено # 1:
Chrome (XPath) дает мне:
//*[@id="right-sidebar"]/div/div[2]/ui-button
Однако этот XPath не работал:
val chrome_xpath = "//*[@id='right-sidebar']/div/div[2]/ui-button"
webDriver.get(URL)
searchId.sendKeys(Id) --put id of order
searchId.sendKeys(Keys.ENTER) -- ENTER
Thread.sleep(1000)
... заказ загружается, затем мне нужно нажать «Подтвердить».
assert(webDriver.findElement(By.xpath(chrome_xpath).isInstanceOf[WebElement]) # true
webDriver.findElement(By.xpath(chrome_xpath)).click`
Кнопка не была нажата,Исключение:
StaleElementReferenceExpection: Элемент больше не действителен.Брошенные в строку, когда я пытался нажать на кнопку
Обновлено # 2:
private val confirmButton = ".btn.btn-sm.btn-block"
webdriver.get(URL)
login --and Spinning
ExplicitWait until some element is found on the page
findElement -- put there an Order ID and press Enter --and Spinning
ExplicitWait until Order is appeared on the page
findElement(By.cssSelector(confirmButton)).click -- passed only once! --and Spinning
ExplicitWait
ОстальноеМои попытки не увенчались успехом либо из-за того, что драйвер IE остановился, либо из-за StaleElementException или из-за того, что элемент больше не существует1040 *