【问题标题】:Finding element using Xpath worked in IE9 but not in IE11使用 Xpath 查找元素在 IE9 中有效,但在 IE11 中无效
【发布时间】:2016-01-27 02:12:16
【问题描述】:

Attached is the HTML SS 我正在尝试单击我的应用程序中的按钮。按钮文本是“重新分配”。请注意,正文前有一个空格。在 IE9 中的开发人员工具中查看时,该空间是可见的。但不是在 IE11 中。我无法在 IE11 中找到该元素。而一个简单的

Driver.findelement(By.xpath(".//button[text()='Reassign']")).click()

在 IE9 中工作。相同的语句在 IE11 中不起作用。

【问题讨论】:

  • 不同的浏览器有不同的渲染引擎。您是否尝试过使用contains()
  • 尝试从seleniumhq.org/download更新selenium dll
  • 是的。我也试过 contains() 。我下载了最新的 selenium dll。但问题依然存在。

标签: selenium


【解决方案1】:

代替

Driver.findelement(By.xpath(".//button[text()=' Reassign']")).click()

你可以试试

Driver.findelement(By.xpath(".//button[normalize-space(text())='Reassign']")).click()

这将忽略任何前导或尾随空格。

【讨论】:

  • 虽然下面的 XPATH 可以工作,driver.findElement(By.xpath(".//div[@id='page_SubNavigation']/div[2]/div[2]/table[1]/tbody[1]/tr[1]/td[1]/button[1]") 但我正在寻找以更正确的方式使用 XPATH。标签将来可能会更改。提前感谢您的回答。
  • 详情请参考我的HTML页面截图。
【解决方案2】:

也许使用By.linkText() 可能会有所帮助,因为微软的实现方式可能与By.xpath() 不同。

尝试By.linkText('Reassign')By.linkText(' Reassign')。如果两者都不起作用,请尝试By.partialLinkText('Reassign')。这当然不是那么具体,但根据您的页面,可以做到。

【讨论】:

  • linkText 和 partialLinkText 也不起作用 Kimmy。
  • 太糟糕了!那就不知道了。
【解决方案3】:

检查以下 xpath 是否有效

//div[@class='divbuttonholder margin-left-none margin-top1']/table/tbody/tr/td/button[@type='button'][@data-bind='click:$ root.Reassign']

【讨论】:

    猜你喜欢
    • 2018-07-23
    • 2014-12-16
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 2013-06-07
    相关资源
    最近更新 更多