【问题标题】:Is there a way to get a link's destination in JavaScript from the xpath of the link?有没有办法从链接的XPath中获取javascript中的链接目的地?
【发布时间】:2011-08-24 13:06:07
【问题描述】:

我正在使用 Selenium RC 为至少部分动态生成或依赖于数据库的网站编写测试用例。我希望能够告诉我的 Python 程序调用 Selenium 对特定链接的目标执行字符串操作,但我不能确定目标(href='' 字段)将在“编译时间”(或者,无论 Python 等价物是什么。有人可以帮我吗?)。

现在,我确定该链接的 xpath 将是什么; "//table[@id='search-results']/tbody/tr[2]/td[3]/a/img" .我正在运行 Selenium,它有一个运行任意 javascript 行的 eval() 函数(万恶之源)。有什么方法可以从 xpath 和 Selenium 获取此链接的目标,还是我必须找到某种方法来下载整个页面源(我该怎么做?应该有一个 Selenium 命令来下载整个页面源代码,但是当我尝试运行它时出现“元素不存在”错误)然后打破正则表达式以弄乱整个页面源代码?

【问题讨论】:

    标签: javascript html xpath hyperlink selenium


    【解决方案1】:

    我认为你可以在这里使用get_attribute Python 方法做到这一点:http://code.google.com/p/selenium/source/browse/trunk/py/selenium/selenium.py#1343

    调用看起来像:

    href = mySelenium.get_attribute("//table[@id='search-results']/tbody/tr[2]/td[3]/a@href")
    

    【讨论】:

      【解决方案2】:

      您的 XPath 表达式选择了一个 img 元素,但在我看来,您希望获得它的父 a 元素。所以如果你的 XPath 是正确的,那么链接目标应该是:

      <...value-of select="//table[@id='search-results']/tbody/tr[2]/td[3]/a@href"/>
      

      或许:

      <...for-each select="//table[@id='search-results']/tbody/tr[2]/td[3]/a">
        <...value-of select="@href" />
      </...for-each>
      

      其中 ... 是您的命名空间

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-14
        相关资源
        最近更新 更多