首页 > 解决方案 > 已解决:RSelenium 错误 - com.google.common.collect.Maps$TransformedEntriesMap 与 java.lang.CharSequence 不兼容

问题描述

我正在尝试使用 RSelenium 为我的工作自动执行数据输入任务,在该任务中,我必须将一些变量输入到在线系统中。有 5 个变量要输入,我的代码适用于所有变量,除了一个“名字”条目。

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

在我的谷歌搜索和故障排除中,我从未见过这个错误,我很奇怪它只适用于我的一个元素。有谁能帮忙吗?

编辑:这是我从中提取的页面的 HTML:

 <a href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$CPHMain$frvProfile$ctl02&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, 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>
                    &nbsp;
                </td>
        <td>
                    &nbsp;
                </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>
                    &nbsp;
                </td>
                <td>
                    &nbsp;
                </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 中创建一个具有相同数据的新列,并且由于某种原因有效。

标签: htmlcssrseleniumrselenium

解决方案


此错误消息...

Selenium message:com.google.common.collect.Maps$TransformedEntriesMap incompatible with java.lang.CharSequence

sendKeysToElement()...表示调用WebElement时发生错误。

关于基于文本的HTML的用例的更多详细信息将有助于我们以更好的方式分析问题。由于您可以填写UserName字段,因此如果用户名是唯一的,则可能会验证用户名,因此FirstName字段保持不可交互。因此,您会看到错误。

您需要诱导一些等待FirstName字段可交互


参考

您可以在以下位置找到相关讨论:


推荐阅读