คำถามติดแท็ก protractor

4
toBe (จริง) vs toBeTruthy () vs toBeTrue ()
คือความแตกต่างระหว่างสิ่งที่expect(something).toBe(true), expect(something).toBeTruthy()และexpect(something).toBeTrue()? ทราบว่าtoBeTrue()เป็นการจับคู่ที่กำหนดเองที่รู้จักในjasmine-matchersหมู่ matchers ที่มีประโยชน์และมีประโยชน์อื่น ๆ เช่นหรือtoHaveMethod()toBeArrayOfStrings() คำถามนั้นมีความหมายทั่วไป แต่เป็นตัวอย่างจริงของโลกฉันกำลังทดสอบว่าองค์ประกอบนั้นแสดงprotractorขึ้นมา ฉันควรใช้ Matcher ประเภทใดในกรณีนี้ expect(elm.isDisplayed()).toBe(true); expect(elm.isDisplayed()).toBeTruthy(); expect(elm.isDisplayed()).toBeTrue();

3
WebDriver click () เทียบกับคลิก JavaScript ()
เรื่องราว: ที่นี่ใน StackOverflow ฉันเคยเห็นผู้ใช้รายงานว่าไม่สามารถคลิกองค์ประกอบผ่านคำสั่ง "click" ของ selenium WebDriver และสามารถแก้ไขได้ด้วยการคลิก JavaScript โดยเรียกใช้สคริปต์ ตัวอย่างใน Python: element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click();", element) ตัวอย่างใน WebDriverJS / Protractor: var elm = $("#myid"); browser.executeScript("arguments[0].click();", elm.getWebElement()); คำถาม: เหตุใดการคลิก "ผ่าน JavaScript" จึงทำงานเมื่อคลิก WebDriver ปกติไม่ได้ สิ่งนี้เกิดขึ้นเมื่อใดและข้อเสียของวิธีแก้ปัญหานี้คืออะไร (ถ้ามี) ฉันใช้วิธีแก้ปัญหานี้เป็นการส่วนตัวโดยไม่เข้าใจว่าทำไมฉันต้องทำและปัญหาที่อาจนำไปสู่

1
ฉันควรใช้ Protractor หรือ Karma สำหรับการทดสอบ end-to-end หรือไม่? [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันควรใช้ Protractor หรือ Karma สำหรับการทดสอบ end-to-end หรือไม่? Angular-seed ใช้ Protractor / Selenium WebDriver สำหรับ E2E แต่การสอนเชิงมุม - phonecat ใช้กรรม ฉันอ่านว่าฉันควรใช้ Karma สำหรับการทดสอบหน่วยและ Protractor สำหรับ E2E ซึ่งดูเหมือนจะดี แต่ฉันคิดว่าฉันจะถามที่นี่เพื่อรับความคิดเห็นของนักพัฒนาคนอื่น ๆ

30
วิธีเลือกตัวเลือกในการทดสอบไม้โปรแทรกเตอร์แบบหล่นลง js e2e
ฉันกำลังพยายามเลือกตัวเลือกจากเมนูแบบเลื่อนลงสำหรับการทดสอบ e2e เชิงมุมโดยใช้ไม้โปรแทรกเตอร์ นี่คือข้อมูลโค้ดของตัวเลือกการเลือก: <select id="locregion" class="create_select ng-pristine ng-invalid ng-invalid-required" required="" ng-disabled="organization.id !== undefined" ng-options="o.id as o.name for o in organizations" ng-model="organization.parent_id"> <option value="?" selected="selected"></option> <option value="0">Ranjans Mobile Testing</option> <option value="1">BeaverBox Testing</option> <option value="2">BadgerBox</option> <option value="3">CritterCase</option> <option value="4">BoxLox</option> <option value="5">BooBoBum</option> </select> ฉันเหนื่อย: ptor.findElement(protractor.By.css('select option:1')).click(); สิ่งนี้ทำให้ฉันมีข้อผิดพลาดต่อไปนี้: ระบุสตริงที่ไม่ถูกต้องหรือผิดกฎหมาย Build info: version: '2.35.0', …

8
จะใช้ไม้โปรแทรกเตอร์ตรวจสอบได้อย่างไรว่าสามารถมองเห็นองค์ประกอบได้หรือไม่?
ฉันกำลังพยายามทดสอบว่าสามารถมองเห็นองค์ประกอบโดยใช้ไม้โปรแทรกเตอร์ได้หรือไม่ นี่คือลักษณะขององค์ประกอบ: <i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i> เมื่ออยู่ในคอนโซล Chrome ฉันสามารถใช้ตัวเลือก jQuery นี้เพื่อทดสอบว่าองค์ประกอบนั้นมองเห็นได้หรือไม่: $('[ng-show=saving].icon-spin') [ <i class=​"icon-spinner icon-spin ng-hide" ng-show=​"saving">​</i>​ ] > $('[ng-show=saving].icon-spin:visible') [] อย่างไรก็ตามเมื่อฉันพยายามทำเช่นเดียวกันในไม้โปรแทรกเตอร์ฉันได้รับข้อผิดพลาดนี้ที่รันไทม์: InvalidElementStateError: invalid element state: Failed to execute 'querySelectorAll' on 'Document': '[ng-show=saving].icon-spin:visible' is not a valid selector. เหตุใดจึงไม่ถูกต้อง ฉันจะตรวจสอบการมองเห็นโดยใช้ไม้โปรแทรกเตอร์ได้อย่างไร?

8
วิธีตั้งค่าขนาดหน้าต่างเบราว์เซอร์เริ่มต้นใน Protractor / WebdriverJS
ด้วยเหตุผลบางประการเมื่อฉันทำการทดสอบในที่ทำงานเบราว์เซอร์จะขยายใหญ่สุด แต่เมื่อฉันเรียกใช้ที่บ้านมันจะเปิดหน้าต่างเบราว์เซอร์ที่มีความกว้างประมาณ 50% เท่านั้น สิ่งนี้ทำให้เกิดความคลาดเคลื่อนในการเลื่อนลง ฯลฯ ดังนั้นฉันจึงอยากให้เปิดหน้าต่างเบราว์เซอร์ที่มีขนาดเท่ากันในทุกเครื่องที่ทำการทดสอบ วิธีใดดีที่สุดในการทำเช่นนี้ (ฉันพบคำตอบสำหรับภาษาอื่น ๆ แต่ไม่สามารถปรับให้เข้ากับจาวาสคริปต์ได้) การเพิ่ม browser.executeScript('window.moveTo(0,0);'+ 'window.resizeTo(screen.width, screen.height);'); ไม่ทำอะไรเลย (เห็นได้ชัดwindow.moveToและwindow.resizeToยังไม่ได้รับการสนับสนุนโดยโครเมี่ยม)

8
วิธี getText บนอินพุตในไม้โปรแทรกเตอร์
ในเอกสารสำหรับไม้โปรแทรกเตอร์ฉันเห็นตัวอย่างต่อไปนี้: describe('by model', function() { it('should find an element by text input model', function() { var username = element(by.model('username')); username.clear(); username.sendKeys('Jane Doe'); var name = element(by.binding('username')); expect(name.getText()).toEqual('Jane Doe'); }); สิ่งที่ปรากฏชัดเจนที่นี่คือคุณสามารถใช้ "by.model" เพื่อกำหนดค่าในช่องป้อนข้อมูล แต่ถ้าคุณต้องการดูที่ช่องป้อนข้อมูลและดูว่ามีอะไรอยู่คุณต้องใช้ "by.binding" ฉันมีชุดรหัสที่ (โดยสรุป) ฉันทำ: element(by.model('risk.name')).sendKeys('A value'); expect(element(by.model('risk.name')).getText()).toEqual('A value'); (ในรหัสจริงของฉันฉันบันทึกเอนทิตีจากนั้นกลับมาที่โหมดแก้ไขและฉันกำลังตรวจสอบว่าค่าของฉันถูกบันทึกจริง แต่มันก็ยังคงเดือดเหมือนเดิมและโค้ดตัวอย่างนี้ก็ให้ปัญหาเดียวกัน) สิ่งนี้ทำให้ฉันมีข้อผิดพลาด: Error: Expected '' to equal 'A …

4
ไม้โปรแทรกเตอร์และกรรมใช้ร่วมกันได้หรือไม่?
ถ้าProtractorกำลังแทนที่ Angular Scenario Runner สำหรับการทดสอบ E2E นั่นหมายความว่าฉันจะยังสามารถใช้กับKarmaเป็นกรอบการทดสอบ E2E ของฉันได้หรือไม่

10
จะทดสอบได้อย่างไรว่าองค์ประกอบมีคลาสโดยใช้ไม้โปรแทรกเตอร์?
ฉันกำลังลองใช้ Protractor เพื่อทดสอบ e2e แอพ Angular และยังไม่ได้หาวิธีตรวจสอบว่าองค์ประกอบมีคลาสเฉพาะหรือไม่ ในกรณีของฉันการทดสอบคลิกที่ปุ่มส่งและตอนนี้ฉันต้องการทราบว่า form [name = "getoffer"] มีคลาส .ngDirty หรือไม่ อะไรคือแนวทางแก้ไข? describe('Contact form', function() { beforeEach(function(){ browser.get('http://localhost:9000'); element(by.linkText('Contact me')).click(); }); it('should fail form validation, all fields pristine', function() { element(by.css('.form[name="getoffer"] input[type="submit"]')).click(); expect(element(by.name('getoffer'))).toHaveClass('ngDirty'); // <-- This line }); });

9
วิธีอัพโหลดไฟล์ในการทดสอบไม้โปรแทรกเตอร์ angularjs e2e
ฉันต้องการทดสอบการอัปโหลดไฟล์โดยใช้การทดสอบ angularjs e2e คุณทำสิ่งนี้ในการทดสอบ e2e ได้อย่างไร? ฉันเรียกใช้สคริปต์การทดสอบของฉันผ่านกรรมฮึดฮัด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.