首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium中无效的XPath表达式错误(使用有效的XPath表达式)

Selenium中无效的XPath表达式错误(使用有效的XPath表达式)
EN

Stack Overflow用户
提问于 2012-05-30 19:01:34
回答 1查看 1.5K关注 0票数 2

我正在使用吡虫啉测试一个Python应用程序,它有一个Selenium驱动程序。

我的测试结果显示了XPath表达式的一些不稳定性问题。有时,我会得到一个“无效的XPath”错误,其中包含一个有效的XPath表达式。如果我再做一次测试,可能会成功的。我跟踪了堆栈跟踪,但找不到解决方案。

堆栈跟踪:

代码语言:javascript
复制
I do not see "top-search-tag-name" element - FAILED - Error executing action <bound method ElementIsNotVisibleAction.execute of <pyccuracy.actions.core.element_actions.ElementIsNotVisibleAction object at 0x2283b10>> - Traceback (most recent call last):
  File "/workspace/env_test/local/lib/python2.7/site-packages/pyccuracy/fixture_items.py", line 99, in execute
    self.execute_function(context, *self.args, **self.kwargs)
  File "/workspace/env_test/local/lib/python2.7/site-packages/pyccuracy/actions/core/element_actions.py", line 179, in execute
    self.assert_element_is_not_visible(context, element_key, error_message)
  File "/workspace/env_test/local/lib/python2.7/site-packages/pyccuracy/actions/__init__.py", line 147, in assert_element_is_not_visible
    if self.is_element_visible(context, selector):
  File "/workspace/env_test/local/lib/python2.7/site-packages/pyccuracy/actions/__init__.py", line 139, in is_element_visible
    is_visible = context.browser_driver.is_element_visible(selector)
  File "/workspace/env_test/local/lib/python2.7/site-packages/pyccuracy/drivers/core/selenium_driver.py", line 86, in is_element_visible
    is_present = self.selenium.is_element_present(element_selector)
  File "/workspace/env_test/local/lib/python2.7/site-packages/selenium/selenium.py", line 1369, in is_element_present
    return self.get_boolean("isElementPresent", [locator,])
  File "/workspace/env_test/local/lib/python2.7/site-packages/selenium/selenium.py", line 261, in get_boolean
    boolstr = self.get_string(verb, args)
  File "/workspace/env_test/local/lib/python2.7/site-packages/selenium/selenium.py", line 223, in get_string
    result = self.do_command(verb, args)
  File "/workspace/env_test/local/lib/python2.7/site-packages/selenium/selenium.py", line 217, in do_command
    raise Exception, data
Exception: ERROR: Invalid xpath [2]: //form[@id='searchtop']//ul[@class = 'tags block editing']//li/a[@class = 'tag']

HTML代码(清理)

代码语言:javascript
复制
<form id="searchtop">
  <ul class="tags block editing">
    <li class="tag">
      <a href="#" class="tag">Section Label</a>
      <a href="#" class="remove" title="Remove filter"></a>
    </li>
  </ul>
  ...
</form>

在这个测试中,我单击了remove链接,然后检查元素是否不存在。XPath表达式是正确的。例如,在Chrome中,在删除标记之前,我会得到用$x(.)选择的元素,并在删除它之后获得一个空列表。测试就是这么做的。有时,相同的测试在完全相同的环境中运行,没有错误。

我怎么才能修好它?

EN

回答 1

Stack Overflow用户

发布于 2014-02-03 19:06:35

我在这里看到两个问题:

  1. 即使有错误,您的测试似乎仍在继续运行
  2. 在执行下一个命令之前,不需要等待元素。

我没有看到"top-search-tag-name“元素执行失败-错误。

这个错误意味着..。元素“顶部搜索标记名”不存在。这种情况通常发生在应用程序太慢或没有完全加载时。若要修复此问题,请尝试在继续之前等待元素。

例外:错误:无效的xpath 2: //form@id='searchtop'//ul@class =‘标记阻止编辑’//li/a@class= 'tag‘

XPath表达式似乎是有效的。您可以将XPath表达式更改为更短。

//form[@id='searchtop']//[a.='Section Label']

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10822576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档