当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriver:java:Span Web元素标识

曹建明
2023-03-14
.//*[@id='rtbPrefix'] 
@FindBy(xpath=".//*[@id='rtbPrefix']")
WebElement txtPrefix_AddContact;
<table>
<tbody>
<tr>
<td class="ContactLeftLabelCol">
<td class="ContactLeftInputCol">
<span id="rtbPrefix_wrapper" class="riSingle RadInput RadInput_Metro" style="width: 50px;" title="Enter the contact's title (Mr., Ms., Dr., etc. ">
<input id="rtbPrefix" class="riTextBox riEnabled riHover" type="text" value="" title="Enter the contact's title (Mr., Ms., Dr., etc. " size="20" name="rtbPrefix"/>
<input id="rtbPrefix_ClientState" type="hidden" name="rtbPrefix_ClientState" autocomplete="off" value="{"enabled":true,"emptyMessage":"","validationText":"","valueAsString":"","lastSetTextBoxValue":""}"/>
</span>
</td>
</tr>

根据以下指示进行更新

    @FindBy(xpath = "//frame[.//input[@id = 'rtbPrefix']]")
        WebElement iframe_Contacts; 

public void Add_Prefix_NewContact(){

        iframe_Contacts.sendKeys("Mr.");
        //txtPrefix_AddContact.sendKeys("Mr.");
    }

更新了来自reply的每个指令的webelemnt,然后下面是它在我的方法中实现的地方

public void CreateANewContact(){
    NewContactClick();

    base.getDriver().switchTo().frame(iframe_Contacts);
    Add_Prefix_NewContact();
    Add_FirstName_NewContact();
    Add_MiddleName_NewContact();
    Add_LastName_NewContact();
    Add_Suffix_NewContact();
    Add_Primary_NewContact();
    Add_JobTitle_NewContact();
    Add_Email_NewContact();
    Add_Phone_NewContact();
    Add_Mobile_NewContact();
    Add_Fax_NewContact();
    Add_Address_NewContact();
    Add_Country_NewContact();
    Add_Zip_NewContact();
    Add_City_NewContact();
    Add_State_NewContact();
    btnSaveClose_AddContact.click();
    Reporter.log("A New Contact Was Successfully Added!!!");
    base.getDriver().switchTo().defaultContent();
}

共有1个答案

翟俊名
2023-03-14

是的,它在iframe中

您必须切换到框架的上下文中,然后在其中搜索元素:

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

WebElement webElement = driver.findElement(By.id("rtbPrefix"));

如果框架上没有定义IDname,您可以通过索引来定位它:

driver.switchTo().frame(0);  // switch to the first frame
WebElement frame = driver.findElement(By.xpath("//frame[.//input[@id = 'rtbPrefix']]");
driver.switchTo().frame(frame);
 类似资料:
  • 问题内容: 作为我对登录功能的Selenium测试的一部分,我想通过识别按钮的坐标并指示Selenium单击这些坐标来单击按钮。无需标识元素本身即可完成此操作(通过id,xpath等)。 我知道还有其他更有效的方式来运行click命令,但是我希望专门使用这种方法来最好地匹配用户体验。谢谢。 问题答案: 硒不会让你这样做。

  • 标签展示静态文本 标签可以: 展示任何数量的静态文本 不允许用户直接交互 可以以编程形式更新 可以跨多行展示 使用标签向用户展示短信息。标签是应用程序中最常用的元素之一。虽然标签可展示任意数量的文本,但最适合展示数量相对较少的文本。 标签应当清晰可见。为标签文本使用高对比度颜色,并使用Dynamic Type以确保标签文本会相应地缩放。内置的系统字体为Apple Watch提供了最清晰可见的字体。

  • 本文向大家介绍html元素哪些标签是不可替换元素?哪些是可替换元素?相关面试题,主要包含被问及html元素哪些标签是不可替换元素?哪些是可替换元素?时的应答技巧和注意事项,需要的朋友参考一下 (replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。也就是说,css 可以影响元素但是不能影响其内容的显示。 可替换元素: …

  • 问题内容: 当父元素悬停时如何更改子元素的样式。如果可能的话,我希望使用CSS解决方案。有没有可能通过:hover CSS选择器解决方案。实际上,当面板上悬停时,我需要更改面板内选项栏的颜色。 希望支持所有主流浏览器。 问题答案: 是的,您绝对可以做到这一点。只需使用类似 根据此页面,所有主流浏览器都支持该页面。

  • 问题内容: 是否存在有关嵌套HTML 和HTML元素的最佳实践? 经典方式: 要么 问题答案: 从w3开始:标签本身可以位于相关控件之前,之后或周围。 要么 要么 请注意,当表格用于布局时,不能使用第三种技术,标签位于一个单元格中,而其关联的表单字段位于另一个单元格中。 任一有效。我喜欢使用第一个或第二个示例,因为它可以为您提供更多的样式控制。

  • 问题内容: 使用Python中的ElementTree,如何从节点中提取所有文本,剥离该元素中的所有标签并仅保留文本? 例如,说我有以下内容: 我想回来。我该怎么做呢?到目前为止,我所采用的方法产生了相当灾难性的结果。 问题答案: 如果您在Python 3.2+下运行,则可以使用。 创建一个文本迭代器,该迭代器按文档顺序循环遍历此元素和所有子元素,并返回所有内部文本: 如果您在较低版本的Pytho