使用Selenium IDE查找动态ID

时间:2014-09-15 18:54:21

标签: selenium xpath selenium-ide

我已经能够使用以下命令找到元素,目标和值。

Command:  Select
Target:   //div[@id='ui-id-51']/div[2]/div/fieldset/div/div/select
Value:    Documentation 

此xpath有效,但id号是动态的,每次打开此窗口时都会更改。因此,下次打开此窗口时,数字(本示例中为51)可能为201,但ui-id-将始终相同。因此,下次打开窗口时找不到此目标。我已尝试使用以下xpath来解决此问题,但它不起作用。

Command:   Select
Target:    //div[starts-with(@id,'ui-id-')]/div[2]/div/fieldset/div/div/select
Value:     Documentation

有人可以给我正确的xpath来找到具有动态ID的目标吗?

这是HTML:

<div id="ui-id-22" class="ui-dialog-content ui-widget-content" style="display: block; width: auto; min-height: 0px; max-height: none; height: 552px;">

    <div></div>
    <div class="patient-module-contact-edit">
        <!--

         start of template: "#contact_log_logEntry_edit" 

        -->
        <div class="new-encounter">
            <fieldset class="wide-mode liquid" style="border: none; padding-top: 0px;">
                <div class="row span5">
                    <div class="span5">
                        <label></label>
                        <select class="encounterType vf vf-required span4 vf-validated" name="encounterType" style="visibility: visible; background-color: rgb(238, 238, 238);">
                            <option value=""></option>
                            <option value="INBOUND_TELEPHONE"></option>
                            <option value="OUTBOUND_TELEPHONE"></option>
                            <option value="OUTBOUND_TELEPHONE_VM"></option>
                            <option value="OUTBOUND_TELEPHONE_NO"></option>
                            <option value="INBOUND_EMAIL"></option>
                            <option value="OUTBOUND_EMAIL"></option>
                            <option value="INBOUND_FAX"></option>
                            <option value="OUTBOUND_FAX"></option>
                            <option value="INBOUND_TEXT"></option>
                            <option value="OUTBOUND_TEXT"></option>
                            <option selected="" value="ENCOUNTER"></option>
                            <option value="DOCUMENTATION"></option>

1 个答案:

答案 0 :(得分:0)

基于{p> starts-with()的解决方案看起来不错,应该根据您提供的内容工作。

您还可以使用contains()尝试更广泛的检查:

//div[contains(@id,'ui-id-')]/div[2]/div/fieldset/div/div/select