我需要找到“确认”并点击。
<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”或“元素不再存在”
如果我在设计测试时遇到错误,请你告诉我吗?
答案 0 :(得分:0)
使用以下XPath:
1. //*[normalize-space()='Confirm']
2. //div[normalize-space()='Confirm']
3. //div//ui-button[normalize-space()='Confirm']
normalize-space()
:删除放置在HTML标记之间的字符串之前和之后的空格。