我正在尝试使用RSelenium为我的工作自动化数据输入任务,在该任务中,我必须将一些变量输入在线系统中。有5个变量可以输入,我的代码适用于所有这些变量,除了一个“ First Name”条目。
remDr$findElement("css selector", "#ctl00_CPHMain_frvProfile_txtFederatedUserID")$sendKeysToElement(list(NetID[i]))
remDr$findElement("css selector", "#ctl00_CPHMain_frvProfile_txtUserName")$sendKeysToElement(list(ID[i]))
remDr$findElement("css selector", "#ctl00_CPHMain_frvProfile_txtFirstName")$sendKeysToElement(list(First[i]))
remDr$findElement("css selector", "#ctl00_CPHMain_frvProfile_txtLastName")$sendKeysToElement(list(Last[i]))
remDr$findElement("css selector", "#ctl00_CPHMain_frvProfile_txtEmail")$sendKeysToElement(list(Email[i]))
前两个和后两个都完美地输入了数据,但是中间的代码段抛出了:
Selenium message:com.google.common.collect.Maps$TransformedEntriesMap incompatible with java.lang.CharSequence
Error: Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
Further Details: run errorDetails method
在Google搜索和疑难解答中,我从未见过此错误,对我来说很奇怪,它仅适用于我的一个元素。有人可以帮忙吗?
编辑:这是我从中提取的页面的HTML:
<a href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$CPHMain$frvProfile$ctl02", "", true, "", "", false, true))">Save & Close</a>
</li>
</ul>
</div>
<table align="left" style="width: 100%">
<tr>
<td align="right">
<strong>
<label for="ctl00_CPHMain_frvProfile_txtFederatedUserID" id="ctl00_CPHMain_frvProfile_lblFederatedUserID">Federated User ID</label>
</strong>
</td>
<td colspan="2">
<input name="ctl00$CPHMain$frvProfile$txtFederatedUserID" type="text" id="ctl00_CPHMain_frvProfile_txtFederatedUserID" />
<span id="ctl00_CPHMain_frvProfile_rfvFederatedUserID" style="display:none;">*</span>
<span id="ctl00_CPHMain_frvProfile_cvFedID" style="display:none;"><br/>*Federated User ID already in use</span>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td align="right">
<label for="ctl00_CPHMain_frvProfile_txtUserName" id="ctl00_CPHMain_frvProfile_lbltxtUserName">Username</label>
</td>
<td colspan="2">
<input name="ctl00$CPHMain$frvProfile$txtUserName" type="text" id="ctl00_CPHMain_frvProfile_txtUserName" />
<span id="ctl00_CPHMain_frvProfile_rfvUserName" style="display:none;">*</span>
<span id="ctl00_CPHMain_frvProfile_cvUserName" style="display:none;"><br/>*Username already in use</span>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
</tr>
<td align="right">
<label for="ctl00_CPHMain_frvProfile_txtFirstName" id="ctl00_CPHMain_frvProfile_lbltxtFirstName">First Name</label>
</td>
<td colspan="2">
<input name="ctl00$CPHMain$frvProfile$txtFirstName" type="text" id="ctl00_CPHMain_frvProfile_txtFirstName" />
<span id="ctl00_CPHMain_frvProfile_rfvFirstName" style="display:none;">*</span>
</td>
</tr>
编辑2:已解决!导入csv时,我搞砸了。由于某种原因,我不得不使用相同的csv创建具有相同数据的新列。
此错误消息...
Selenium message:com.google.common.collect.Maps$TransformedEntriesMap incompatible with java.lang.CharSequence
...表示为WebElement调用sendKeysToElement()
时发生了错误。
关于基于文本HTML的用例术语的更多详细信息,将有助于我们以更好的方式分析问题。当您能够填写UserName字段时,如果username是唯一的,则可能会得到验证,因此FirstName字段保持non interactable。因此,您会看到错误。
您需要引起一些等待,以等待FirstName字段为interactable。
您可以在以下位置找到相关的讨论: