watir-webdriver Watir :: Exception :: ObjectReadOnlyException (Watir :: Exception :: ObjectReadOnlyException) - PullRequest
0 голосов
/ 15 февраля 2012

Люди,

В моем веб-приложении есть виджет даты, и я пытаюсь ввести дату, и я получаю указанное выше исключение, мой HTML-код выглядит так:

<form id="order_form" class="h" method="post" action="/order/orders/1000">
<div style="margin: 0pt; padding: 0pt; display: inline;">

</div>
<input id="order_type_description" type="hidden" value="Order" name="order[type_description]">
<fieldset>

</fieldset>
<fieldset id="simple">
<legend>Order terms</legend>
<div class="field clear">
<label class="_">&nbsp;</label>
<textarea id="order_sorder_for" rows="5" name="order[order_for]" cols="80"></textarea>
</div>
</fieldset>
<fieldset id="basic" style="display: none;">

</fieldset>
<fieldset id="change" style="display: none;">

</fieldset>
<fieldset>
<legend>Optional</legend>
<fieldset>
<div class="field clear">

</div>
<div class="field clear">
<label class="_">Range</label>
<select id="smart_date" onchange="process_date(this, true);" name="order[smart_date]">

</select>
<p class="tip"> Select . </p>
</div>
<div class="field clear">
<label class="_">Begins on</label>
<input id="order_begin_string" class="custom_date_range calendar hasDatepicker" type="text" size="30" readonly="readonly" name="order[begin_string]">
<img class="ui-datepicker-trigger" src="/images/calendar.gif" alt="..." title="...">
</div>
<div class="field clear">
<label class="_">Ends on</label>
<input id="order_end_string" class="custom_date_range calendar hasDatepicker" type="text"  size="30" readonly="readonly" name="order[end_string]">
<img class="ui-datepicker-trigger" src="/images/calendar.gif" alt="..." title="...">
</div>

Как мне ввести дату? Я подумывал запустить javascript в коде watir:

@@browser.execute_script("document.order_form.order_begin_string.value = 'March 01, 2011'")

Но вышеупомянутое не работает, я получаю следующую ошибку за это:

  document.order_form is undefined (Selenium::WebDriver::Error::UnexpectedJavascriptError)

Любая помощь очень ценится. большое спасибо

1 Ответ

0 голосов
/ 15 февраля 2012

Расположение элемента должно быть выполнено с использованием метода getElementById (или аналогичного ему).

Следующее работало с вашим примером HTML (протестировано в Firefox):

@@browser.execute_script("document.getElementById('order_begin_string').value='March 01, 2011'")
...