Java 使用Serenity BDD剧本管理React DOM
晚上好,社区。 我希望收到关于如何使用serenity BDD和剧本自动化REACT应用程序的评论或帮助。 基本上,我的问题如下: 我有一个分为步骤的登记表,根据显示视图的步骤,例如,在步骤1中输入邮件和确认,在下一步中输入姓名等,直到完成登记 我是如何完成这个过程的: 生成了一个包含注册表所有步骤的任务,如果所有步骤都在同一个任务中执行,则效果很好,但当我想在新实现中分离每个步骤时,在执行流程时,第一步(确认和邮件)运行良好,但以下步骤(名称和姓氏)找不到项目,该过程正在查找电子邮件和密码标识符 我认为这是因为反应句柄的虚拟DOM。 我仍然无法找到如何处理当前上下文并使流程在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中输入邮件和确认,在下一步中输入姓名等,直到完成登记 我是如何完成这个过程的: 生成了一个包含注册表所有步骤的任务,如果所有步骤都在同一个任务中执行,则效果很好,但当我想在新实现中分离每个步骤时,在执行流程时,第一步(确认和邮件)运行良好,但以下步骤(名称和姓氏)找不到项目,该过程正在查找电子邮件和密码标识
@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:
no such element: Unable to locate element: {"method":"css selector","selector":"*[name='email']"}
[name='email']
//*[@name='email']