Xpath无法找到嵌套的框架元素

时间:2013-04-16 13:13:08

标签: html xpath selenium-webdriver

使用Xpath查找嵌套帧的元素时会出现问题。我的代码是:

<html>
<head>
<frameset border="0" framespacing="0" frameborder="0">
<frame noresize="" name="main" src="main.py">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<body>
<div id="cboxOverlay" style="display: none;"></div>
<div id="colorbox" class="" style="padding-bottom: 57px; padding-right: 28px; display: none;">
<div id="main_loading" class="main_loading"></div>
<div id="spin_loading" class="spin-loading"></div>
<div id="page_header">
<div id="header2">
<div id="daemons_controller.py" class="header2_menu_div" style="display:none;"></div>
<div id="main_report.py" class="header2_menu_div" style="display:none;"></div>
<div id="manage_host.py" class="header2_menu_div" style="display:none;"></div>
<div id="main.py" class="header2_menu_div"></div>
<div id="header2_div" style="display:none;">
**

    <div id="login_user">
    <img title="User" alt="" src="images/new_icons/user.png" style="width:16px;height:16px;">

**
<span>
</div>
</div>
<div id="user_options">
<div id="ubr_sub_menu" class="sub-sub-menu" style="right:auto;">
<div id="ubre_sub_menu" class="sub-sub-menu" style="right:auto;">
<div id="idu_sub_menu" class="sub-sub-menu" style="right:auto;">
<div id="header3">
<div id="container">
<div id="events_logs_box" style="display: none;">
<div id="footer">
<div style="clear:both;"></div>
</body>
</html>
</frame>
</frameset>
<pixelperfectlastoverlay id="ppReloadLastOverlay"></pixelperfectlastoverlay>
</html>

的Xpath = // DIV [@ ID = 'login_user'] 结果给出了空结果。 我需要id的位置我的selenium工具找到Elements。有没有办法通过Xpath Locator定位框架。

2 个答案:

答案 0 :(得分:1)

使用此方法查找iframe中的元素:

driver.switchTo().frame((WebElement) driver.findElement(By.xpath("//iframe")));

现在你在iframe中,你可以正常方式找到任何元素,因为你已经在iframe中。如果要切换到父窗口,请使用:

driver.switchTo().defaultContent();

答案 1 :(得分:0)

试试这个xpath,问题可能是因为你使用的是()而不是[]

//div[@id='login_user']