首页 > 解决方案 > 如何在 Selenium 中创建具有较大 id 和类名属性值的自定义定位器

问题描述

有人可以帮助我如何使用下面的 html 片段生成 Xpath。我正在努力为它制作 xpath,因为 id ,类很大......请帮助如何为此生成 Xpath。

<input class="js-text-full text-full form-text required" data-drupal-selector="edit-page-content-0-subform-page-layout-content-0-subform-slot-1-0-subform-slot-content-form-inline-entity-form-module-type-content-0-subform-module-a-content-0-subform-large-composite-image-carousel-0-subform-large-composite-images-0-subform-header-text-0-subform-header-text-header-text-lines-0-subform-header-text-line-text-items-0-subform-text-items-items-0-subform-text-styled-text-0-value" type="text" id="edit-page-content-0-subform-page-layout-content-0-subform-slot-1-0-subform-slot-content-form-inline-entity-form-module-type-content-0-subform-module-a-content-0-subform-large-composite-image-carousel-0-subform-large-composite-images-0-subform-header-text-0-subform-header-text-header-text-lines-0-subform-header-text-line-text-items-0-subform-text-items-items-0-subform-text-styled-text-0-value--5OtB_Vbe-qw" name="page_content[0][subform][page_layout_content][0][subform][slot_1][0][subform][slot_content][form][inline_entity_form][module_type_content][0][subform][module_a_content][0][subform][large_composite_image_carousel][0][subform][large_composite_images][0][subform][header_text][0][subform][header_text__header_text_lines][0][subform][header_text_line__text_items][0][subform][text_items__items][0][subform][text_styled_text][0][value]" value="" size="60" maxlength="255" placeholder="" required="required" aria-required="true">

标签: seleniumselenium-webdriverxpathcss-selectorswebdriverwait

解决方案


如果您的课程是独一无二的,您可以使用它:

//input[@class="js-text-full text-full form-text required"]

如果您认为类名太长,您可以使用 contains 并提及部分匹配字符串:

//input[contains(@class,"form-text required")]

如果您的课程不是唯一的,您可以尝试将其与其他属性(如类型)结合使用

//input[contains(@class,"form-text required") and @type="text"]

或者您可以将其与类名和部分匹配 id 的组合一起使用:

//input[@class="js-text-full text-full form-text required" and contains(@id,"edit-page-content")]

推荐阅读