คำถามติดแท็ก selenium-webdriver

Selenium-WebDriver มี WebDriver API สำหรับควบคุมเบราว์เซอร์ในภาษาโปรแกรมต่างๆ ("การผูกภาษา") เมื่อใช้แท็กนี้ให้เพิ่มแท็กสำหรับภาษาโปรแกรมที่คุณใช้

24
WebDriverException: ข้อผิดพลาดที่ไม่รู้จัก: ไฟล์ DevToolsActivePort ไม่มีอยู่ในขณะที่พยายามเริ่มต้นเบราว์เซอร์ Chrome
ฉันกำลังพยายามเปิดใช้งาน Chrome ด้วย URL เบราว์เซอร์เปิดตัวและไม่ทำอะไรเลยหลังจากนั้น ฉันเห็นข้อผิดพลาดด้านล่างหลังจาก 1 นาที: Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information) การกำหนดค่าของฉัน: Chrome: 66 ChromeBrowser: 2.39.56 PSทุกอย่างทำงานได้ดีใน Firefox

11
“ องค์ประกอบไม่ได้เชื่อมต่อกับ DOM” StaleElementReferenceException แบบสุ่มอีกต่อไป
ฉันหวังว่ามันเป็นแค่ฉัน แต่ Selenium Webdriver ดูเหมือนเป็นฝันร้ายที่สมบูรณ์ เว็บเบราว์เซอร์ Chrome ใช้งานไม่ได้ในขณะนี้และไดรเวอร์อื่น ๆ ค่อนข้างไม่น่าเชื่อถือหรือดูเหมือนเป็นอย่างนั้น ฉันกำลังต่อสู้กับปัญหาหลายอย่าง แต่นี่คือปัญหาเดียว การทดสอบของฉันจะล้มเหลวด้วยการสุ่ม "org.openqa.selenium.StaleElementReferenceException: Element is no longer attached to the DOM System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_23'" ฉันใช้ webdriver เวอร์ชั่น 2.0b3 ฉันได้เห็นสิ่งนี้เกิดขึ้นกับไดรเวอร์ FF และ IE วิธีเดียวที่ฉันสามารถป้องกันได้คือเพิ่มการโทรจริงThread.sleepก่อนที่จะเกิดข้อยกเว้น นั่นเป็นวิธีแก้ปัญหาที่ไม่ดีดังนั้นฉันหวังว่าจะมีใครบางคนชี้ให้เห็นข้อผิดพลาดในส่วนของฉันที่จะทำให้ดีขึ้นทั้งหมด

9
ข้อความที่ชัดเจนจาก textarea ด้วยซีลีเนียม
ฉันได้รับการทดสอบบางอย่างที่ฉันกำลังตรวจสอบว่าข้อความแสดงข้อผิดพลาดที่เหมาะสมปรากฏขึ้นเมื่อข้อความในบางฟิลด์ไม่ถูกต้อง หนึ่งการตรวจสอบความถูกต้องคือองค์ประกอบ textarea บางอย่างไม่ว่างเปล่า หากข้อความนี้มีข้อความอยู่แล้วฉันจะบอกซีลีเนียมให้ล้างฟิลด์ได้อย่างไร สิ่งที่ต้องการ: driver.get_element_by_id('foo').clear_field()

29
Webdriver ไม่สามารถเชื่อมต่อกับโฮสต์ 127.0.0.1 บนพอร์ต 7055 หลังจาก 45000 ms
ฉันมีกล่องที่ฉันทำการทดสอบ ดูเหมือนว่าเจนกินส์จะเข้ามาและรันคำสั่งที่อธิบายไว้ในงานเฉพาะที่กำลังทำงานอยู่ ที่นี่ฉันพยายามเรียกใช้การทดสอบ Selenium Webdriver ของฉัน แต่มันบอกฉันว่าฉันมีข้อผิดพลาดในการเปิดตัว firefox แนวคิดสุดท้ายคือการเรียกใช้การทดสอบทางเว็บในช่องนี้โดยสมบูรณ์และใช้ภาพหน้าจอที่มีข้อผิดพลาด ฉันใช้ซีลีเนียม-java-2.25.jar, firefox 10, linux OS สิ่งที่ตลกคือฉันสามารถ ssh ด้วยตนเองลงในกล่องคัดลอกคุกกี้มายากลจากผู้ใช้คนอื่นบนกล่อง (เพื่อรับอุโมงค์ X) ทำexport DISPLAY=mydisplay:1.0และจากนั้นเปิดตัวการทดสอบซีลีเนียมโดยใช้มด และสิ่งนี้จะทำให้ Firefox และการทดสอบดีขึ้น มีกระทู้ต่าง ๆ ที่นี่ดูเหมือนว่าจะมีปัญหาเดียวกันแน่นอนและฉันคิดว่าฉันได้ลองพวกเขาส่วนใหญ่ นี่คือสิ่งที่ฉันทำ: รีบูทกล่องแล้วล็อกอินกลับด้วย VNC วางสคริปต์ทุบตีในเจนกินส์เพื่อให้ทำงานก่อนรันการทดสอบซีลีเนียม สคริปต์ทุบตีพื้นเพียงไม่ นอกจากนี้ยังดำเนินการexport DISPLAY=mydisplay:1.0 xclockใช้งานได้เพราะฉันเห็น xclock กำลังแสดงอยู่ใน VNC iptables ถูกปิด firefox อยู่ใน / usr / bin / firefox อย่างถูกต้อง sshd_config …

8
จะใช้ฟังก์ชัน mouseover ใน Selenium WebDriver โดยใช้ Java ได้อย่างไร?
ฉันต้องการใช้ฟังก์ชันวางเมาส์เหนือเมนูแบบเลื่อนลง เมื่อเราวางเมาส์เหนือเมนูจะแสดงตัวเลือกใหม่ ฉันพยายามคลิกตัวเลือกใหม่โดยใช้ xpath แต่ไม่สามารถคลิกเมนูโดยตรง ดังนั้นตามวิธีการด้วยตนเองฉันพยายามวางเมาส์เหนือเมนูแบบเลื่อนลงแล้วคลิกตัวเลือกใหม่ Actions action = new Actions(webdriver); WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a")); action.moveToElement(we).build().perform();


17
ฉันจะเลื่อนหน้าเว็บโดยใช้ selenium webdriver ใน python ได้อย่างไร
ฉันกำลังใช้ selenium webdriver เพื่อแยกวิเคราะห์ผ่านหน้าเพื่อนของผู้ใช้ facebook และแยกรหัสทั้งหมดจากสคริปต์ AJAX แต่ฉันต้องเลื่อนลงเพื่อรับเพื่อนทั้งหมด ฉันจะเลื่อนลงในซีลีเนียมได้อย่างไร ฉันใช้ python

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 ปกติไม่ได้ สิ่งนี้เกิดขึ้นเมื่อใดและข้อเสียของวิธีแก้ปัญหานี้คืออะไร (ถ้ามี) ฉันใช้วิธีแก้ปัญหานี้เป็นการส่วนตัวโดยไม่เข้าใจว่าทำไมฉันต้องทำและปัญหาที่อาจนำไปสู่

9
วิธีเลือกตัวเลือกในเมนูแบบเลื่อนลงโดยใช้ Capybara
ฉันกำลังพยายามเลือกรายการจากเมนูแบบเลื่อนลงโดยใช้ Capybara (2.1.0) ฉันต้องการเลือกตามหมายเลข (หมายถึงเลือกตัวเลือกที่สองสาม ฯลฯ ) ฉัน Googled อย่างบ้าคลั่งที่พยายามทำทุกอย่าง แต่ไม่มีโชค ฉันสามารถเลือกได้โดยใช้ค่า: find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click แต่ฉันไม่ต้องการใช้วิธีนั้น b / c ค่าคือสิ่งที่จะเปลี่ยนแปลงและนั่นจะทำให้การทดสอบของฉันเปราะบาง HTML สำหรับเมนูแบบเลื่อนลงคือ: <td class="value"> <select name="organizationSelect" id="organizationSelect" class="required"> <option value="NULL">Choose...</option> <option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8"> Institution1</option> <option value="e1a4efa7-352d-410a-957e-35c8a3b92944"> Institution / test</option> </select> </td> ฉันลองสิ่งนี้ด้วย: option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text select(option, :from => organizationSelect) แต่ส่งผลให้เกิดข้อผิดพลาดนี้: Ambiguous match, found 2 …

5
วิธีทำให้ firefox headless โดยใช้โปรแกรมใน Selenium ด้วย python
ฉันใช้รหัสนี้กับ python, ซีลีเนียมและ firefox แต่ยังคงได้รับ Firefox เวอร์ชัน 'head': binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', log_file=sys.stdout) binary.add_command_line_options('-headless') self.driver = webdriver.Firefox(firefox_binary=binary) ฉันลองใช้ไบนารีรูปแบบต่างๆด้วย: binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout) binary.add_command_line_options("--headless")

9
การใช้ Selenium Web Driver เพื่อดึงค่าของอินพุต HTML
ใน HTML ของเว็บแอปมีรหัสต่อไปนี้ <input type="text" name="prettyTime" id="prettyTime" class="ui-state-disabled prettyTime" readonly="readonly"> สิ่งที่แสดงบนหน้านี้คือสตริงที่แสดงเวลา ใน Selenium Web Driver ฉันมีWebElementวัตถุที่อ้างถึงการ<input>ใช้ WebElement timeStamp = waitForElement(By.id("prettyTime")); ฉันต้องการรับค่าของWebElementหรือกล่าวอีกนัยหนึ่งคือสิ่งที่พิมพ์บนหน้า ฉันลองใช้WebElementgetters ทั้งหมดแล้วและยังไม่มีการดึงค่าจริงที่ผู้ใช้เห็น ความช่วยเหลือใด ๆ ขอบคุณ


17
ข้อผิดพลาดที่ไม่รู้จัก: ผลลัพธ์ของฟังก์ชันการโทรไม่มี 'value' สำหรับ Selenium Send Keys แม้ว่าจะอัปเกรด Chromedriver แล้วก็ตาม
ฉันได้รับข้อผิดพลาดด้านล่างขณะส่งคีย์ ข้อความผลลัพธ์: System.InvalidOperationException : unknown error: call function result missing 'value' (Session info: chrome=65.0.3325.146) (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64) ฉันได้อัปเดตไดรเวอร์ Chrome เป็น 2.36 แต่ยังคงค้นหารหัสสำหรับ 2.33 ความคิดใด ๆ ?

15
Selenium 2.53 ไม่ทำงานบน Firefox 47
ฉันได้รับข้อผิดพลาดขณะใช้ Firefox กับ WebDriver org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. เวอร์ชัน Firefox: 47.0.0 ซีลีเนียม: 2.53.0 Windows 10 64 บิต มีใครได้รับปัญหาที่คล้ายกันหรือมีความคิดว่าวิธีแก้ปัญหานี้คืออะไร? ทำงานได้ดีกับ Chrome แต่เมื่อใช้ Firefox จะไม่มีการโหลด URL

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

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