我在python上使用Selenuim。我需要更新两个Webelement的值,但我只能更新一个

时间:2018-04-17 08:04:48

标签: python selenium

以下是页面源代码段。



    <tr>
     <th>Model Name<span class="c-c60000 txtNormal">*</span></th>
        <td><table cellpadding="0" cellspacing="0" border="0"><tr><td><input tabindex="-1" readonly="readonly" value="" disabled="disabled" type="text" class="inputText" name="modelName" id="modelName" style="width:150px;" style = "ime-mode:disabled"/>&nbsp;</td><td><table class="btnTypeA"><tr><td>
         <a href="javascript:popUpModelSearch();">Search</a>
         </td></tr></table></td></tr></table></td>
      <th>Customer Code<span class="c-c60000 txtNormal">*</span></th>
        <td><input readonly="readonly" disabled="disabled" type="text" value="" class="inputText" name="cc" id="cc" style="width:150px;" style = "ime-mode:disabled"/></td>
       </tr>
 <tr>
     <th>Model Alias</th>
        <td><input readonly="readonly" disabled="disabled" type="text" value="" class="inputText" name="modelAlias" id="modelAlias" style="width:150px;" style = "ime-mode:disabled"/></td>
        <th>Scenario Type</th>
        <td>
 <select style="width:155px;" name="testOrUse" id="testOrUse" onchange="javascript:loadSubField('');">
        <!-- Admin, Lead Model Developer -->
<option value="T">Testing Scenario</option>	
 </select>
 </td>
 </tr>
&#13;
&#13;
&#13;

我的代码是

element4 = browser.find_element_by_id("modelAlias")
browser.execute_script("arguments[0].value = 'GT-I9192';", element4)

element2 = browser.find_element_by_id("modelName")
browser.execute_script("arguments[0].value = 'GT-I9192';", element2)

前两行似乎正常工作,价值得到更新&#34; modelAlias&#34; 但最后两行无法正常工作。 我的代码也没有抛出任何使事情变得困难的错误。 我认为跨度是不同行为的原因。

1 个答案:

答案 0 :(得分:0)

尝试这个我不太了解python,但你删除属性,因为它被禁用,然后尝试传递值,这是javacode。尝试将其转换为Python

JavascriptExecutor jse =(JavascriptExecutor)driver;
jse.executeScript("arguments[0].removeAttribute('disabled','disabled')", element4);
jse.executeScript("arguments[0].value = 'GT-I9192';", element4);
jse.executeScript("arguments[0].removeAttribute('disabled','disabled')", element5);
jse.executeScript("arguments[0].value = 'GT-I9192';", element5);