当前位置: 首页 > 知识库问答 >
问题:

使用Selenium Webdriver检索只读字段的值

黄景胜
2023-03-14
The given selector .//div[@id='ContainerCell']/span/[@id='StartDate']/input[@id='StartDate_txtInput'] is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: Unable to locate an element with the xpath expression .//div[@id='ContainerCell']/span/[@id='StartDate']/input[@id='StartDate_txtInput'] because of the following error:
SyntaxError: The expression is not a legal expression.

我要查找的值是

下面的HTML代码。

#document
    <!--

    [if lte IE 8]>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD …

    -->
    <!--

    [if gte IE 9]>
    <!DOCTYPE HTML>
    <![endif]

    -->
    <!--

    [if !IE]> 

    -->
    <!DOCTYPE html>
    <!--

     <![endif]

    -->
    <html webdriver="true">

<head id="RuntimeForm"></head>
<body id="RuntimeFormBody" onload="InitialiseRuntimeForm();setInitialSize();" onbeforeunload="return PromptWhenClosing(event)" style="overflow: hidden; margin: 0px;" onresize="resizeContainerCell()" tabindex="-1">
    <form id="Form1" style="height: 100%;" onkeydown="return FormKeyDown(event)" onkeypress="return FormKeyPress(event)" onsubmit="javascript:return WebForm_OnSubmit();" action="RunTimeForm.aspx?ScreenID=8142758e-269a-41f0-b551-433e56dd1225" method="post" name="Form1">

<div></div>
<script type="text/javascript"></script>
<script type="text/javascript" src="/V14_ST1/WebResource.axd?d=5sNVsMkS2BZs-uoFEc4iQlsiyiLjXyZMN…nDsYTHfbaZu1hg-eY3e5am9_qL4BG_2h5iaVRw1&t=635662391674952392"></script>
<script></script>
<script></script>
<script></script>
<script type="text/javascript" src="/V14_ST1/WebResource.axd?d=s_BonnG3MwQl_dl8IfLCFCykZO1rmMJx-…odgFonyPZXsgvo4Ui0T7XvpKyRoUhQlSwxeG541&t=635662391674952392"></script>
<script src="/V14_ST1/UltimateSpellInclude/UltimateSpell.core.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript"></script>
<script type="text/javascript"></script>
<input id="hdAccessKeyArea" type="hidden" value="8" name="hdAccessKeyArea"></input>
<a id="AccessKeyLink" accesskey="0" onactivate="ShowAccessKeyHelp('false',$('#hdAccessKeyArea')[0].value);this.blur();" title="Access Key Help" tabindex="-1" href="javascript:ShowAccessKeyHelp(false,$('#hdAccessKeyArea')[0].value);"></a>
<div id="ValidationSummary" style="color:Red;height:22px;width:197px;z-index:102;left:13px;position:absolute;top:420px;display:none;"></div>
<div id="tblContainer" style="display: block; width: 100%;">

                            <!--

                             Header ToolBar 

                            -->
                            <div id="trToolbarHeaderContainer" style="height: auto; width: 100%;"></div>
                            <!--

                             Runtime form content 

                            -->
                            <div id="Content" style="position:relative; background-color: #F9FAF5; width: 100%; height: 100%;">
                                <!--

                                 Runtime form cotrols 

                                -->
                                <div id="ContainerCell" style="overflow: auto; width: 459px; height: 305px; position: relative; background-color: rgb(250, 250, 250); cursor: default;"></div>
                                <!--

                                 Refresh panel 

                                -->
                                <div id="RefreshPanel" style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; display: none"></div>
                                <!--

                                 Footer ToolBar 

                                -->
                                <div id="trToolbarFooterContainer" style="width: 100%;"></div>
                                <div id="trToolbarMobileContainer" style="width: 100%;"></div>
                                <div id="dialog" title=""></div>
                                ::after
                            </div>
                            <input id="hdSubRecordDelete" type="hidden" name="hdSubRecordDelete"></input>
                            <input id="hdRecordID" type="hidden" value="00000000-0000-0000-0000-000000000000" name="hdRecordID"></input>
                            <input id="hdTableName" type="hidden" name="hdTableName"></input>
                            <input id="hdNoDisplayScreen" type="hidden" value=" No display screen assigned for the current Grid." name="hdNoDisplayScreen"></input>
                            <input id="hdParentRecordID" type="hidden" value="00000000-0000-0000-0000-000000000000" name="hdParentRecordID"></input>
                            <input id="hdHelpURL" type="hidden" name="hdHelpURL"></input>
                            <input id="hdHelpExists" type="hidden" value="html" name="hdHelpExists"></input>
                            <input id="hdSaveRecordFirstMessage" type="hidden" value="You must save the current record before carrying out this action." name="hdSaveRecordFirstMessage"></input>
                            <input id="hdDBSearchAddInID" type="hidden" name="hdDBSearchAddInID"></input>
                            <input id="ReadOnly" type="hidden" value="1" name="ReadOnly"></input>
                            <input id="hdHelpTitle" type="hidden" value=" Help " name="hdHelpTitle"></input>
                            <input id="hdDateLastModified" type="hidden" name="hdDateLastModified"></input>
                            <input id="ChangesAction" type="hidden" value="0" name="ChangesAction"></input>
                            <input id="hdFormLastModified" type="hidden" value="07/01/2015 08:20:11" name="hdFormLastModified"></input>
                            <input id="hdIsChangesMade" type="hidden" name="hdIsChangesMade"></input>
                            <input id="ImpersonationToken" type="hidden" name="ImpersonationToken"></input>
                            <input id="HRImpersonationToken" type="hidden" value="EcwWpmHtjrWmn9UTEYVeW0QB4wsmk2a+IdSkkHq9ENs=" name="HRImpersonationToken"></input>
                            <input id="ImpersonationId" type="hidden" name="ImpersonationId"></input>
                            <input id="InstanceID" type="hidden" value="0538a35f-03d7-e511-968c-8e001800001f" name="InstanceID"></input>
                            <input id="hdScreenId" type="hidden" value="8142758e-269a-41f0-b551-433e56dd1225" name="hdScreenId"></input>
                            <input id="hdScreenIdentifiers" type="hidden" name="hdScreenIdentifiers"></input>
                            <input id="hdUniqueID" type="hidden" value="d0b819a3-47b6-4cf1-a08b-983e98d0a673" name="hdUniqueID"></input>
                            <input id="hdFormDataset" type="hidden" value="AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00…cgZfQnVpbGQJX1JldmlzaW9uAAAAAAgICAgCAAAAAAAAAP//////////Cw==" name="hdFormDataset"></input>
                            <input id="hdRecordIDList" type="hidden" name="hdRecordIDList"></input>
                            <input id="hdVersion" type="hidden" name="hdVersion"></input>
                            <input id="hdAutoCompleteMobileOnly" type="hidden" value="True" name="hdAutoCompleteMobileOnly"></input>
                            <input id="hdWorkflowSubmitted" type="hidden" value="false" name="hdWorkflowSubmitted"></input>
                            <input id="hEventSource" type="hidden" name="hEventSource"></input>
                            <script type="text/javascript"></script>
                            <script type="text/javascript"></script>
                            <script></script>
                            <script type="text/javascript"></script>
                            <script language="javascript" type="text/javascript"></script>
                            <form target="DOCCONTAINER" action="" name="DocName" method="post"></form>
                            <iframe name="DOCCONTAINER" src="javascript:void(0)" style="visibility: hidden; display: none"></iframe>
                            <script type="text/javascript"></script>
                            <script type="text/javascript" language="javascript"></script>
                            <script></script>
                        </div>
                    </form>
                </body>
            </html>
        </html>
    </iframe>
    <script defer="" src="FormContainer.js" type="text/javascript"></script>
    <script type="text/javascript"></script>
</body>

共有1个答案

顾均
2023-03-14

所以位于跨度内不应该成为找不到元素的原因。现在请尝试以下两件事:

使用wait:通常元素加载需要时间,大多数元素找不到的问题用这个来解决。

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("StartDate_txtInput")));

使用getAttribute():您可能使用element.getText()检索文本。有时元素中没有文本,而是将其设置为一个属性,在本例中是输入标记的值(value for input tag)。尝试:

driver.findElement(By.id("StartDate_txtInput")).getAttribute("value");
 类似资料:
  • 只读字段用来保护某些特殊的字段值不被更改,这个字段的值一旦写入,就无法更改。 要使用只读字段的功能,我们只需要在模型中定义readonly属性: <?php namespace app\index\model; use think\Model; class User extends Model { protected $readonly = ['name', 'email']; } 例

  • 我假设有两个表t_document和t_employee。表t_document有两个字段,id和owner_id,owner_id与t_employee有外键关系。表t_employee有两个字段,id和name。我的难题是,如何设置一个JPA实体(使用1. x版),以便以下NamedNativeQuery获取一个文档以及所有者的姓名并正确填充实体? 首先,我介绍了文档类的基本开头。

  • 我使用Adobe acrobat reader编辑PDF,在我看到的地方,每个字段都有一个position属性,表示PDF字段在表单中的位置。 所以我的问题是,我能读到那个值吗? 现在我用下面的代码检索表单字段:

  • 我正在尝试在SWT窗口中制作一个大的白色框来显示信息。我希望它看起来与标签不同,但我也希望它不可编辑。 到目前为止,我只能创建一个灰色背面(顶部)的中午可编辑输入框。我的目标是使用(在下)获得的外观。 (< code>List的问题是它只能在每个列表项的一行上显示文本。我可能需要显示一段文字)。

  • 到目前为止,我只能与Jira建立连接,但我不知道如何获取特定字段。据我所知,JIRA API的SearchResult类可以解决这个问题,但我不知道如何将它集成到我现有的代码中。任何帮助都将不胜感激。 Java版本-8,操作系统-视窗10,日蚀-火星 /*使用的罐子:jersey-bundle-1.9。罐子(https://mvnrepository.com/artifact/com.sun.je

  • 问题内容: 我在尝试使用 JasperReports 从Java生成报告时遇到问题,但出现错误。 堆栈跟踪: 问题答案: 你的豆长什么样?导致此错误的一个可能原因是您没有该字段的吸气剂。吸气剂必须遵守Java标准格式,因此您认为我愿意。吸气剂也必须是。