ElementNotVisibleException:元素当前不可见,因此可能无法与之交互

时间:2016-07-11 12:13:07

标签: selenium-webdriver

我收到ElementNotVisibileException但此页面没有重复的名称,其名称为"历史记录"但它确实有"呼叫历史"。任何人都可以建议最好的定位器来定位元素吗?

<li class="ui-widget ui-menuitem ui-corner-all ui-menu-parent" aria- haspopup="true" role="menuitem">
   <a class="ui-menuitem-link ui-corner-all" href="javascript:void(0)">
      <span class="ui-menuitem-text">History</span>
      <span class="ui-icon ui-icon-triangle-1-e"></span>
   </a>

错误

  

org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与之交互(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:122毫秒建立信息:版本:&#39; 2.52.0&#39;,修订版:&#39; 4c2593c&#39;,时间:&#39; 2016-02-11 19:03:33&#39;系统信息:主持人:&#39; rsn-GA- 78LMT-S2&#39;,ip:&#39; 127.0.1.1&#39;,os.name:&#39; Linux&#39;,os.arch:&#39; amd64&#39;,os.version :&#39; 3.13.0-54-generic&#39;,java.version:&#39; 1.7.0_101&#39;会话ID:17716ecc-ffe3-40f9-92a6-8a106acf478d驱动信息:org.openqa.selenium。 firefox.FirefoxDriver       Capabilities [{platform = LINUX,acceptSslCerts = true,javascriptEnabled = true,cssSelectorsEnabled = true,databaseEnabled = true,browserName = firefox,handlesAlerts = true,nativeEvents = false,webStorageEnabled = true,rotating = false,locationContextEnabled = true,pplicationCacheEnabled = true ,takesScreenshot = true,version = 38.0.1}] atun.reflect.NativeConstructorAccessorImpl.newInstance0(原生方法)

1 个答案:

答案 0 :(得分:0)

如果您想获得包含文字a的{​​{1}}元素,请尝试使用HistorylinkText一起使用,等待元素显示如下: -

ExpectedConditions.visibilityOfElementLocated

或者如果您想获得包含文字WebDriverWait wait = new WebDriverWait(driver, 10); WebElement linkElement= wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("History"))); 的{​​{1}}元素,请尝试使用span,如下所示: -

History

已修改: - 如果鼠标悬停在此xPath上,请尝试使用WebDriverWait wait = new WebDriverWait(driver, 10); WebElement spanElement = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text() = 'History']"))); 执行element,如下所示: -

Action

MouseOver

希望它能起作用.. :)