Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium C#如何检查打开弹出对话框的元素。我认为这可能是一个JavaScript事件_C#_Selenium_Selenium Webdriver - Fatal编程技术网

Selenium C#如何检查打开弹出对话框的元素。我认为这可能是一个JavaScript事件

Selenium C#如何检查打开弹出对话框的元素。我认为这可能是一个JavaScript事件,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我试图从网页的元素中获取文本值。我有username字段、password字段和Go按钮(Submit)元素。 我将用户名和密码字段留空,然后单击Go按钮。 用户名字段下方会显示一个弹出字段,文本值为“请填写此字段” 我想捕获文本“请填写此字段”,然后我可以对其进行断言以验证是否显示了此文本。 网址是 我无法检查此弹出窗口的元素。它可能是一个JavaScript事件,触发此弹出显示 如果我检查Go按钮,则HTML为: <div id="login" class="right">

我试图从网页的元素中获取文本值。我有username字段、password字段和Go按钮(Submit)元素。 我将用户名和密码字段留空,然后单击Go按钮。 用户名字段下方会显示一个弹出字段,文本值为“请填写此字段”

我想捕获文本“请填写此字段”,然后我可以对其进行断言以验证是否显示了此文本。 网址是

我无法检查此弹出窗口的元素。它可能是一个JavaScript事件,触发此弹出显示

如果我检查Go按钮,则HTML为:

    <div id="login" class="right">
<form id="loginForm">
    <div class="loginInputs">
    <div class="loginSubmit">
        <input class="loginbutton" value="Go" type="submit"/>
    </div>
    <div class="clear"/>
</form>
    <div id="loginError" class="hide">
    <div class="loginErrorText"/>
    </div>
    <div class="clear"/>

如何从元素中获取文本值? 我正在使用Selenium C#


谢谢,Riaz

弹出框是框架还是警报?您可以使用
ExpectedConditions.AlertIsPresent
和类似的检查(如果是警报)。如果它是一个警报,那么我认为你无法得到它的文本。然而,无论如何,这并不是自动支票的最佳用途。不要像那样在静态字符串上断言。你可以用肉眼一次确认。每次提交更改时检查它不会增加任何人对您的应用程序正在工作的信心。集中精力检查计算机擅长检查的内容,这会增加您对应用程序正在工作的信心。我的自动bdd方案是检查用户是否无法使用无效的用户凭据登录。当它在无效登录上显示一个弹出窗口时,我打算用它来验证测试是否通过。这种行为类似于“给定一个有效的用户James,当James输入无效凭据时,他就没有登录”?然后只检查James是否未登录。警报/弹出窗口是一个实现细节,不要在任何断言中使用它。仅检查James的登录状态是否为“未登录”。最好也使用API或DB状态进行检查:如果您正在通过UI执行操作,最好不要在之后断言UI状态。用户界面很容易报告错误的事情。我现在明白了,我会在早上和同事讨论。谢谢你给我指出了正确的方向。这个弹出窗口是一个框架还是一个警报?您可以使用
ExpectedConditions.AlertIsPresent
和类似的检查(如果是警报)。如果它是一个警报,那么我认为你无法得到它的文本。然而,无论如何,这并不是自动支票的最佳用途。不要像那样在静态字符串上断言。你可以用肉眼一次确认。每次提交更改时检查它不会增加任何人对您的应用程序正在工作的信心。集中精力检查计算机擅长检查的内容,这会增加您对应用程序正在工作的信心。我的自动bdd方案是检查用户是否无法使用无效的用户凭据登录。当它在无效登录上显示一个弹出窗口时,我打算用它来验证测试是否通过。这种行为类似于“给定一个有效的用户James,当James输入无效凭据时,他就没有登录”?然后只检查James是否未登录。警报/弹出窗口是一个实现细节,不要在任何断言中使用它。仅检查James的登录状态是否为“未登录”。最好也使用API或DB状态进行检查:如果您正在通过UI执行操作,最好不要在之后断言UI状态。用户界面很容易报告错误的事情。我现在明白了,我会在早上和同事讨论。谢谢你给我指明了正确的方向。