ฉันเพิ่งเริ่มทดลองกับ Page Object Models โดยใช้ Protractor ในแอปพลิเคชันที่ไม่ใช่เชิงมุม ฉันไม่ใช่มือใหม่ แต่ไม่มีที่ไหนใกล้ผู้เชี่ยวชาญ ดังนั้นขออภัยหากการใช้คำฟุ่มเฟือยของฉันผิดพลาดทั้งหมด ฉันค้นคว้าและลองใช้คำแนะนำมาหลายวันแล้วโดยไม่มีโชค ฉันมีองค์ประกอบนี้-
<input type="text" class="form-control" name="form_component_data[AgentsSettings][agent][chat_welcome_msg]" id="agentssettings-agent-chat_welcome_msg" value="How can I help">
ใน POM ของฉันฉันมี
var txtWelcomemessage = element(by.css("input[name='form_component_data[AgentsSettings][agent][chat_welcome_msg]']"));
this.clearWelcomemessage = function(){
txtWelcomemessage.clear();
};
this.clearWelcomemessage = function(){
txtWelcomemessage.clear();
};
this.setWelcomemessage = function(){
txtWelcomemessage.sendKeys();
};
ในสคริปต์ทดสอบของฉันฉันมี
settings.clearWelcomemessage();
browser.sleep('5000');
settings.setWelcomemessage('Hey, Hey, Hey');
browser.sleep('5000');
ล้างข้อความใช้งานได้ ฉันเห็นเคอร์เซอร์ในช่องหลังจากล้างข้อความ แต่ปุ่มส่งไม่ได้ทำอะไรเลยและไม่มีข้อผิดพลาด
อย่างไรก็ตาม เมื่อฉันป้อนโค้ดด้านล่างลงในสคริปต์ทดสอบโดยตรง ข้อความจะถูกล้างและปุ่มส่งทำงานได้อย่างสมบูรณ์
driver.findElement(by.css("input[name='form_component_data[AgentsSettings][agent]
[chat_welcome_msg]']")).click();
browser.sleep('3500')
driver.findElement(by.css("input[name='form_component_data[AgentsSettings][agent]
[chat_welcome_msg]']")).sendKeys('Hey, Hey, Hey');
นี่เป็นฟิลด์ที่ 3 ที่ฉันกำลังทำงานด้วยในแอปพลิเคชันจนถึงตอนนี้ สองช่องแรกทำงานโดยใช้ POM โดยไม่มีปัญหาใดๆ ฉันไม่แน่ใจว่าสิ่งนี้แตกต่างอย่างไร ฉันสามารถใช้สิ่งนี้เป็นวิธีแก้ปัญหาได้ แต่ฉันแค่สงสัยว่าฉันขาดอะไรไปในวัตถุหน้า
await
เป็นฟังก์ชันหรือเปล่า? settings.clearWelcomemessage() และ browser.sleep() คือasync
โปรดลองเพิ่มคำสั่ง console.log() ระหว่างแต่ละการกระทำและตรวจสอบว่า sleep ใช้งานได้จริงหรือไม่ - person Silvan Bregy   schedule 08.07.2021