java - 如何在另一个 html 标签内选择带有 html 源的 web 元素 selenium web 驱动程序

标签 java javascript html selenium xpath

<html>
<head></head>
<body>
    <div id="title"></div>
    <div id="credit"></div>
    <div id="btnFS"></div>
    <div id="cont">
        <div id="fscont">
        <div style="font-size: 0px; position: absolute; left: 0; right: 0; top: …w: auto; overflow-y: auto; -webkit-overflow-scrolling:touch;"></div>
        <div style="font-size: 0px; position: absolute; left: 0; right: 0; height: 75px; overflow: hidden; bottom: 0;">
            <iframe width="100%" height="100%" frameborder="0" name="cboxform" scrolling="no" marginwidth="0" marginheight="0" src="//www4.cbox.ws/box/?boxid=4255329&boxtag=ev9nj4&sec=form" allowtransparency="yes">
                #document
                    <!DOCTYPE html>
                    <html style="position: absolute; height: 100%; width: 100%; overflow: hidden; margin: 0px; padding: 0px;">
                        <head></head>
                        <body class="fmbdy" style="padding: 0px; margin: 0px;">
                            <form class="cfrm" onsubmit="return do_post();" method="post" action="./?boxid=4255329&boxtag=ev9nj4&sec=submit" target="cboxmain" name="cbox">
                                <table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0" style="width: auto;">
                                <tbody>
                                <tr></tr>
                                <tr>
                                <td id="tblmid" valign="top" style="vertical-align: top; white-space: nowrap; font-size: 0;" colspan="2">
                                    <input type="hidden" value="" name="key"></input>
                                    <input class="frmtb" type="text" onblur="frmblur(this, 'name');" onfocus="frmfocus(this, 'name');" value="name" size="9" autocomplete="off" spellcheck="false" name="nme" maxlength="25" style="box-sizing: content-box; width: 301px;"></input>

我有一个聊天框页面,它是由 cbox.ws 创建的,我想选择这个页面上的元素。
我尝试了很多方法在此网站中选择 id tblmid 但我不能。
使用了很多方法,例如通过名称获取、查找 xpath 然后通过 xpath 获取、通过 css 查找和获取它们……但它没有用。

我怎样才能得到那个元素? 我正在使用java。
我试着一步一步地 get by id cont -> get by id fscont -> get by name cboxform 但我不能再去了,卡在这里。

WebElement inputName = driver.findElement(By.id("cont"));
inputName = inputName.findElement(By.id("fscont"));
inputName = inputName.findElement(By.name("cboxform"));

非常感谢。

最佳答案

所需的元素在 iframe 中,您需要在进行搜索之前切换到它:

driver.switchTo().frame("cboxform");

driver.findElement(By.id("tblmid"));

另见:

关于java - 如何在另一个 html 标签内选择带有 html 源的 web 元素 selenium web 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29224281/

相关文章:

java - 单击微调器元素 android

javascript - 如何使用 javascript 以 excel 文件格式导出表格

java - 使用 Selenium Webdriver(使用 Java)测试没有 ID 的视频

javascript - 如何检查 Protractor 中是否存在编辑后的结果?

java - 如何在同一按钮单击上设置不同的 onclick 监听器?

java - 使用面向字节的流(例如 FileInputStream/FileOutputStream)从文件读取/写入 int 值是否会访问缓冲区/磁盘 4 次?

java - 在 java URI 中编码井号

html - 鼠标悬停时下拉列表消失

javascript - 如何在 html5 视频中停止视频之前检查当前时间是否等于特定数字

javascript让我的文本框显示一个变量