ฉันใช้ Selenium IDE สำหรับ Firefox และค้นหาคำสั่ง wait ปัญหาของฉันคือฉันต้องการทดสอบเว็บไซต์ที่มีแผนที่ภายนอกในตัว แผนที่ภายนอกนี้ใช้เวลาโหลด 3-5 วินาที
คำสั่งของฉัน:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
ฉันใช้ Selenium IDE สำหรับ Firefox และค้นหาคำสั่ง wait ปัญหาของฉันคือฉันต้องการทดสอบเว็บไซต์ที่มีแผนที่ภายนอกในตัว แผนที่ภายนอกนี้ใช้เวลาโหลด 3-5 วินาที
คำสั่งของฉัน:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
คำตอบ:
ใช้คำสั่งหยุดชั่วคราวและป้อนจำนวนมิลลิวินาทีในฟิลด์เป้าหมาย
ตั้งค่าความเร็วเป็นเร็วที่สุด (การดำเนินการ -> เร็วที่สุด) มิฉะนั้นจะไม่ทำงาน
TargetแทนValue. Command = Pause, Target = 1,000
pause()ไม่ทำงาน
สิ่งนี้จะทำให้สิ่งต่างๆล่าช้าเป็นเวลา 5 วินาที:
คำสั่ง: หยุด
เป้าหมายชั่วคราว: 5000
ค่า:
สิ่งนี้จะทำให้สิ่งต่างๆล่าช้าเป็นเวลา 3 วินาที:
คำสั่ง: หยุด
เป้าหมายชั่วคราว: 3000
ค่า:
เอกสารประกอบ:
http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause

สำหรับผู้ที่ทำงานด้วยantฉันใช้สิ่งนี้เพื่อระบุการหยุดชั่วคราว 5 วินาที:
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
นั่นคือtarget: 5000และvalueว่างเปล่า ตามข้อมูลอ้างอิงระบุว่า:
หยุดชั่วคราว (waitTime)
อาร์กิวเมนต์:
- waitTime - ระยะเวลาในการนอนหลับ (เป็นมิลลิวินาที)
รอตามระยะเวลาที่กำหนด (ในหน่วยมิลลิวินาที)
ทางออกที่ดีที่สุดของคุณคือwaitForConditionการเขียนฟังก์ชันจาวาสคริปต์ที่ส่งคืนจริงเมื่อโหลดแผนที่
สิ่งนี้จะทำสิ่งที่คุณกำลังมองหาใน C # (WebDriver / Selenium 2.0)
var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);
และอย่าใช้ Thread.Sleep เพราะจะทำให้การทดสอบของคุณไม่น่าเชื่อถือ
คำสั่งหยุดชั่วคราวสามารถใช้ได้โดยตรงใน ide ในรูปแบบ html
หากใช้ java หรือ C คุณสามารถใช้ Thread.sleep (5000) เวลาอยู่ในหน่วยมิลลิวินาที ภาษาอื่นรองรับ "sleep 5" หรือ time.sleep (5) คุณมีหลายทางเลือกสำหรับการรอเวลาที่กำหนด
ก่อนที่คำสั่งจะclickAndWaitเพิ่มรหัสต่อไปนี้ดังนั้นสคริปต์จะรอจนกว่าจะเห็นลิงก์เฉพาะ:
<tr>
<td>waitForVisible</td>
<td>link=do something</td>
<td></td>
</tr>
การใช้คำสั่ง wait แทนการหยุดชั่วคราวส่วนใหญ่จะมีประสิทธิภาพและเสถียรกว่า
ขั้นตอนนี้จะรอจนกว่าลิงก์ของคุณจะปรากฏขึ้นจากนั้นคุณจึงคลิกได้
Command: waitForElementPresent
Target: link=do something
Value:
สิ่งที่ฉันพบว่าใช้ได้กับไซต์ที่ฉันทดสอบคืออันนี้:
waitForCondition | selenium.browserbot.getUserWindow (). $. active == 0 | 20000
Klendathu
ใน Chrome สำหรับ "Selenium IDE" ฉันก็ลำบากเหมือนกันที่มันไม่หยุดชั่วคราว มันจะหยุดชั่วคราวหากคุณให้ดังนี้:
การดำเนินการนี้จะหยุดชั่วคราวเป็นเวลา 10 วินาที