我如何在硒的magento购物车页面上等待期望值

时间:2019-07-03 07:46:35

标签: java selenium xpath css-selectors webdriverwait

在触发下一个click事件之前,我尝试使用硒Web驱动程序等待购物车页面上的计算得出的总计。但是我有一个例外。页面上没有其他可等待的元素。我认为为经验丰富的开发人员找到解决方案真的很容易,但我不是。

我使用以下等待命令:

wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector(".grand.totals .price"), "35,75 €"));`

这是我尝试选择元素的源代码片段。

<tr class="grand totals">
    <th class="mark" scope="row">
        <strong data-bind="i18n: title">Bestellsumme</strong>
    </th>
    <td data-bind="attr: {'data-th': title}" class="amount" data-th="Bestellsumme">
        <strong><span class="price" data-bind="text: getValue()">35,75&nbsp;€</span></strong>
    </td>
</tr>

这是我的例外。

  

org.openqa.selenium.ElementNotVisibleException:元素不可交互         (会议信息:chrome = 75.0.3770.100)         (驱动程序信息:chromedriver = 74.0.3729.6(255758eccf3d244491b8a1317aa76e1ce10d57e9-refs / branch-heads / 3729 @ {#29}),platform = Windows NT 10.0.17134 x86_64)(警告:服务器未提供任何堆栈跟踪信息)       命令持续时间或超时:0毫秒       构建信息:版本:'3.141.59',修订版本:'e82be7d358',时间:'2018-11-14T08:17:03'       系统信息:主机:'MARCEL-THINK',ip:'10 .110.12.3',操作系统名称:'Windows 10',os.arch:'amd64',os.version:'10 .0',java.version:'11 .0 .3'       驱动程序信息:org.openqa.selenium.chrome.ChromeDriver

1 个答案:

答案 0 :(得分:0)

您似乎很近。文本 35,75€在其之间包含一个空格字符,并且位于<span>标签内。因此,您可以使用以下任一Locator Strategies

  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector("tr.grand.totals td.amount>strong>span.price"), "35,75"));
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//tr[@class='grand totals']//td[@class='amount']/strong/span[@class='price']"), "35,75"));