我有一个列表框(droplist)项,当我点击div / span元素时动态创建..但是,当我尝试点击列表框时在做了一个流利的等待后,它会抛出一个错误说
元素在点(741,192)处无法点击。其他元素将收到点击:"
如果我尝试使用Thread.sleep(2000)
,则代码运行完美。关于如何解决此问题并使其在fluentWait
中运行的任何想法。我在 ExpectedConditions 类中尝试了 elementTobeClickable,elementSelectionStateToBe,presenceOfElementLocated 方法,它们都抛出相同的错误。我正在使用 ChromeDriver 进行测试。
该页面的代码和HTML代码段位于
之下WebElement elt = driver.findElement(By.xpath("//*[@id='GroupTT']/span[2]/span/span[1]")); //Clicking on the span so that listbox will be activiated
Actions act = new Actions(driver);
act.moveToElement(elt).click().build().perform();
fWait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//ul[@id='Group_listbox']/li[2]")))); //Thread.sleep(2000) works fine here.
driver.findElement(By.xpath("//ul[@id='Group_listbox']/li[2]")).click();
HTML代码段
<div >
<ul unselectable="on" id="Group_listbox" role="listbox" style="overflow: auto; height: auto;">
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-index="0"> Group1 </li>
<li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-index="1"> Group2 </li>
<li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-index="1"> Group3 </li>
</ul>
</div>
答案 0 :(得分:0)
您可以尝试更改XPath定位器以按内部文本查找元素。
self.user.text=self.userName