我已经能够使用以下命令找到元素,目标和值。
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>
答案 0 :(得分:0)
starts-with()
的解决方案看起来不错,应该根据您提供的内容工作。
您还可以使用contains()
尝试更广泛的检查:
//div[contains(@id,'ui-id-')]/div[2]/div/fieldset/div/div/select