我正在尝试使用xpath页面查找并单击元素。 当我点击特定元素并使用firebug检查它时,路径永远不会工作,即使firebug能够找到相对路径和绝对路径,它似乎也找不到?
IWebDriver driver = new FirefoxDriver();
driver.FindElement(By.XPath(
"html/body/div[5]/div/div[103]/div[2]/div/div[1]/div[5]/div/div[3]/div[2]/div/img[2]")).Click();
这是firebug识别的相对路径
.//*[@id='16']/div[2]/div/div[1]/div[5]/div/div[3]/div[2]/div/img[2]
<img class="Qv_CellIcon_right Qv_ULC" alt="" style="cursor: pointer; max-width: 202px; max-height: 16px;" src="/QvAjaxZfc/QvsViewClient.aspx?datamode=binary&name=ULC&host=QVS%40fuzionpulse-tst&slot=&public=only&xrfkey=nX73wyD2jq281aHj"/>
答案 0 :(得分:0)
非常详细的XPath存在无法定位的风险,因为HTML必须具有多么精确的结构才能匹配&#34;。
查看您提供的示例XPath / HTML,我看到id
位于<img>
中的父元素和类属性中,我将使用它来构建更简化的的XPath:
//*[@id='16']//img[@class='Qv_CellIcon_right Qv_ULC']
说明:
//*[@id='16']
- 选择第一个匹配的节点,其中id
等于'16'
//img[@class='Qv_CellIcon_right Qv_ULC']
- 选择第一个匹配的<img>
,其中class
属性等于'Qv_CellIcon_right Qv_ULC'