Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Java 使用Serenity BDD剧本管理React DOM_Java_Reactjs_Selenium_Ui Automation_Browser Automation_Css Selectors - Fatal编程技术网

Java 使用Serenity BDD剧本管理React DOM

Java 使用Serenity BDD剧本管理React DOM,java,reactjs,selenium,ui-automation,browser-automation,css-selectors,Java,Reactjs,Selenium,Ui Automation,Browser Automation,Css Selectors,晚上好,社区。 我希望收到关于如何使用serenity BDD和剧本自动化REACT应用程序的评论或帮助。 基本上,我的问题如下: 我有一个分为步骤的登记表,根据显示视图的步骤,例如,在步骤1中输入邮件和确认,在下一步中输入姓名等,直到完成登记 我是如何完成这个过程的: 生成了一个包含注册表所有步骤的任务,如果所有步骤都在同一个任务中执行,则效果很好,但当我想在新实现中分离每个步骤时,在执行流程时,第一步(确认和邮件)运行良好,但以下步骤(名称和姓氏)找不到项目,该过程正在查找电子邮件和密码标识

晚上好,社区。 我希望收到关于如何使用serenity BDD和剧本自动化REACT应用程序的评论或帮助。 基本上,我的问题如下: 我有一个分为步骤的登记表,根据显示视图的步骤,例如,在步骤1中输入邮件和确认,在下一步中输入姓名等,直到完成登记

我是如何完成这个过程的: 生成了一个包含注册表所有步骤的任务,如果所有步骤都在同一个任务中执行,则效果很好,但当我想在新实现中分离每个步骤时,在执行流程时,第一步(确认和邮件)运行良好,但以下步骤(名称和姓氏)找不到项目,该过程正在查找电子邮件和密码标识符

我认为这是因为反应句柄的虚拟DOM。 我仍然无法找到如何处理当前上下文并使流程在DOM中找到当前元素的答案

@Step("{0} fill the what's your name step")
@Override
public <T extends Actor> void performAs(T actor) {
    actor.attemptsTo(
        Refresh.theBrowserSession(),
        JavaScriptClick.on(TXT_FIRST_NAME),
        Click.on(TXT_FIRST_NAME),
        Enter.theValue(firstName).into(TXT_FIRST_NAME),
        Click.on(TXT_LAST_NAME),
        Enter.theValue(lastName).into(TXT_LAST_NAME),
        Click.on(BTN_CONTINUE_NAME),
        Click.on(TXT_BIRTHDAY),
        Enter.theValue("06/08/1989").into(TXT_BIRTHDAY),
        Click.on(BTN_CONTINUE_BIRTHDAY),
        Click.on(RADIO_GENDER),
        Click.on(BTN_CONTINUE_GENDER)
    );
}
这就是抛出控制台的错误

[Test worker] ERROR net.thucydides.core.steps.ConsoleLoggingListener - TEST FAILED AT STEP And I fill the email and confirmation email step
    [Test worker] ERROR net.thucydides.core.steps.ConsoleLoggingListener - no such element: Unable to locate element: {"method":"css selector","selector":"*[name='email']"}

    no such element: Unable to locate element: {"method":"css selector","selector":"*[name='email']"}
      (Session info: chrome=80.0.3987.122)
    For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
此错误消息

no such element: Unable to locate element: {"method":"css selector","selector":"*[name='email']"}
…表示您使用的中存在问题


*[name='email']
不是有效的。您需要删除星号,即
*
,使其成为有效的css选择器。因此,您必须有效地使用:

  • CSS选择器:

  • xpath:


嗨,克里斯蒂安,欢迎来到Stackoverflow。这将有助于您提供有关您已尝试解决此问题的信息。另外,由于Selenium似乎在解释缺少的DOM元素,请提供一个输入HTML的最小示例
no such element: Unable to locate element: {"method":"css selector","selector":"*[name='email']"}
[name='email']
//*[@name='email']