簡體   English   中英

動態ID文本框的Selenium腳本

[英]Selenium script for dynamic ID textbox

我必須單擊ID可變的元素,這意味着每次都將動態值分配給文本框。 我必須在文本框中插入值。 以下是文本框的檢查元素代碼

    <div class="invoicing-details">
        <div>
        <label for="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca"> To </label>
        <input id="PaidToContactID" type="hidden" value="" name="PaidToContactID">
        <div class="controls">
        <input id="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca" type="hidden" style="display:none;" value="" name="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca">
        <input id="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca_value" class=" autocompleter field " type="text" style="width:127px;" tabindex="10" value="" maxlength="255" name="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca_value" autocomplete="off">
        <div id="PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca_suggestions" class="autocomplete" style="display: none; height: 200px; width: 200px;"> </div>

<script type="text/javascript">
</div>
</div>

“ PaidToName_b62b89226e5f4fcbb74d0d27a9db88ca_value”是文本框ID。 我使用了以下代碼self.set_text_value('div.invoicing-details input',“ my value”,true),但是它不起作用並且出現語法錯誤。 任何人都可以幫我,並提供語法如何編寫硒的紅寶石腳本。

動態ID對自動化非常不利。 您可以嘗試將其他屬性添加到具有穩定名稱的輸入元素。 據我清楚地了解,您需要單擊元素,然后在其中輸入文本? 我不太擅長紅寶石,但我認為這應該像:

element = driver.find_elements(:css,".invoicing-details .autocompleter")
element.click
element.send_keys "Some text"

您可以嘗試使用下一個xpath查找元素的ID: //input[@id=(//label[contains(text(),'To')]/@for)] 在這里,你找到它的文本標簽,然后得到for屬性(它需要ID)。

element = driver.find_elements(:xpath,"//input[@id=(//label[contains(text(),'To')]/@for)]")
element.click
element.send_keys "Some text"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM