Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SeleniumWebDriver和Java从剑道下拉列表中选择选项_Java_Selenium_Xpath_Css Selectors_Webdriverwait - Fatal编程技术网

如何使用SeleniumWebDriver和Java从剑道下拉列表中选择选项

如何使用SeleniumWebDriver和Java从剑道下拉列表中选择选项,java,selenium,xpath,css-selectors,webdriverwait,Java,Selenium,Xpath,Css Selectors,Webdriverwait,以下是我的HTML代码: <ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" id="ddlSettleMode_listbox" aria-live="polite" data-role="staticlist" role="listbox"><li tabindex="-1" role="option" unselectable="on" class="k-item k-

以下是我的HTML代码:

<ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" id="ddlSettleMode_listbox" aria-live="polite" data-role="staticlist" role="listbox"><li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-offset-index="0" id="18e2d509-b1e1-4588-bd2a-dcff29b45b83">Select</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">Cash</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="2">Card</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="3">Cheque</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="4">Paytm</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="5">NEFT</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="6">DD</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="7">IMPS</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="8">Online</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="9">UPI</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="10">Digital</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="11">CMS</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="12">Univ</li></ul>
我收到以下错误消息:

Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: //li[text() = 'Cash'] (tried for 20 second(s) with 500 milliseconds interval)

要在剑道下拉列表中使用而不是使用``来选择文本为Cash的项目,您必须为
元素引入WebDriverWait以使其可伸缩()
,您可以使用以下任一选项:

  • css选择器

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("ul.k-list.k-reset#ddlSettleMode_listbox li.k-item[data-offset-index='0']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("li.k-item[data-offset-index='1']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//ul[@class='k-list k-reset' and @id='ddlSettleMode_listbox']//li[contains(@class, 'k-item') and text()='Select'][@data-offset-index='0']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[@class='k-item' and text()='Cash'][@data-offset-index='1']"))).click();
    

您是否尝试添加条件以检查完整页面加载,然后访问下拉列表?不,我没有…如何添加条件以检查完整页面加载上述解决方案不适用于我。。。。这里默认情况下,“选择”选项将出现在下拉列表中,因此我需要单击下拉列表,然后再次选择现金option@MurugesanK签出更新的答案并让我知道状态。
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//ul[@class='k-list k-reset' and @id='ddlSettleMode_listbox']//li[contains(@class, 'k-item') and text()='Select'][@data-offset-index='0']"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[@class='k-item' and text()='Cash'][@data-offset-index='1']"))).click();