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

WebDriver เป็น API สำหรับควบคุมเว็บเบราว์เซอร์เลียนแบบผู้ใช้จริง ส่วนใหญ่จะใช้สำหรับการทดสอบอัตโนมัติ WebDriver มีการผูกภาษาและไดรเวอร์หลายภาษา (อนุญาตให้ควบคุมเบราว์เซอร์ต่างๆ) หากคำถามของคุณเจาะจงสำหรับคำถามใดคำถามหนึ่งอย่าลืมใส่แท็กที่เหมาะสมด้วย


17
Selenium WebDriver: รอให้หน้าที่ซับซ้อนที่มี JavaScript โหลด
ฉันมีเว็บแอปพลิเคชันที่จะทดสอบกับซีลีเนียม มี JavaScript จำนวนมากที่ทำงานบนการโหลดหน้าเว็บ โค้ด JavaScript นี้เขียนไม่ค่อยดี แต่ไม่สามารถเปลี่ยนแปลงอะไรได้ ดังนั้นการรอให้องค์ประกอบปรากฏใน DOM ด้วยfindElement()วิธีการจึงไม่ใช่ทางเลือก ฉันต้องการสร้างฟังก์ชันทั่วไปใน Java เพื่อรอให้เพจโหลดวิธีแก้ปัญหาที่เป็นไปได้คือ: เรียกใช้ WebDriver รูปแบบ JavaScript สคริปต์และเก็บผลของในตัวแปรสตริงdocument.body.innerHTMLbody เปรียบเทียบbodyตัวแปรกับเวอร์ชันก่อนหน้าของbody. ถ้าพวกเขาจะเหมือนกันจากนั้นตั้งค่าเพิ่มเคาน์เตอร์notChangedCountกำหนดมิฉะนั้นnotChangedCountจะเป็นศูนย์ รอสักครู่ (ตัวอย่างเช่น 50 ms) หากเพจไม่มีการเปลี่ยนแปลงในบางครั้ง (เช่น 500 มิลลิวินาที) ดังนั้นให้notChangedCount >= 10ออกจากลูปมิฉะนั้นวนซ้ำไปที่ขั้นตอนแรก คุณคิดว่าเป็นวิธีแก้ปัญหาที่ถูกต้องหรือไม่?

15
ฉันจะขอให้ Selenium-WebDriver รอสองสามวินาทีใน Java ได้อย่างไร
ฉันกำลังทำงานกับ Java Selenium-WebDriver ฉันเพิ่ม driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); และ WebElement textbox = driver.findElement(By.id("textbox")); เนื่องจากแอปพลิเคชันของฉันใช้เวลาไม่กี่วินาทีในการโหลดส่วนติดต่อผู้ใช้ ผมจึงตั้งเวลา 2 วินาทีโดยนัย แต่ฉันไม่พบกล่องข้อความองค์ประกอบ จากนั้นฉันก็เพิ่ม Thread.sleep(2000); ตอนนี้ใช้งานได้ดี วิธีไหนดีกว่ากัน

10
ซีลีเนียม: ข้อยกเว้น FirefoxProfile ไม่สามารถโหลดโปรไฟล์ได้
ตามคำถามก่อนหน้านี้ฉันได้อัปเดต Selenium เป็นเวอร์ชัน 2.0.1 แต่ตอนนี้ฉันมีข้อผิดพลาดอีกครั้งแม้ว่าไฟล์โปรไฟล์จะอยู่ภายใต้/tmp/webdriver-py-profilecopy: ไฟล์ "/home/sultan/Repository/Django/monitor/app/request.py" บรรทัดที่ 236 ในการดำเนินการ เบราว์เซอร์ = Firefox (โปรไฟล์) ไฟล์ "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py" บรรทัด 46 ใน __init__ self.binary, หมดเวลา), ไฟล์ "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py" บรรทัด 46 ใน __init__ self.binary.launch_browser (self.profile) ไฟล์ "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py" บรรทัด 44 ใน launch_browser self._wait_until_connectable () ไฟล์ "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py" บรรทัด 87 ใน _wait_until_connectable เพิ่ม WebDriverException ("ไม่สามารถโหลดโปรไฟล์ได้โปรไฟล์ Dir:% s"% self.profile.path) …

3
ตัวเลือก CSS (id ประกอบด้วยส่วนหนึ่งของข้อความ)
ผมมีคำถาม. ฉันมีองค์ประกอบดังนี้: <a> องค์ประกอบที่มี id = someGenerated บาง: เหมือนกัน: 0: name <a> องค์ประกอบที่มี id = someGenerated บาง: เหมือนกัน: 0: นามสกุล <a> องค์ประกอบที่มี id = someGenerated บาง: เดียวกัน: 1: ชื่อ <a> องค์ประกอบที่มี id = someGenerated บาง: เดียวกัน: 1: นามสกุล ฉันต้องการตัวเลือก CSS เพื่อรับชื่อ ปัญหาคือไม่รู้จะเอายังไง ฉันลองแล้วa[id*='Some:Same']- มันส่งคืน<a>องค์ประกอบทั้งหมด หลังจากที่ฉันสามารถรับองค์ประกอบที่ id ลงท้ายด้วยชื่อ แต่ฉันไม่ชอบความคิดนี้ ฉันคิดว่ามันสามารถทำได้ด้วยตัวเลือกอื่น ๆ

9
Selenium Web Driver และ Java ไม่สามารถคลิกองค์ประกอบที่จุด (x, y) องค์ประกอบอื่น ๆ จะได้รับคลิก
ฉันใช้การรออย่างชัดเจนและฉันมีคำเตือน: org.openqa.selenium.WebDriverException: องค์ประกอบไม่สามารถคลิกได้ที่จุด (36, 72) องค์ประกอบอื่น ๆ จะได้รับคลิก: ... ระยะเวลาคำสั่งหรือหมดเวลา: 393 มิลลิวินาที หากฉันใช้Thread.sleep(2000)ฉันไม่ได้รับคำเตือนใด ๆ @Test(dataProvider = "menuData") public void Main(String btnMenu, String TitleResultPage, String Text) throws InterruptedException { WebDriverWait wait = new WebDriverWait(driver, 10); driver.findElement(By.id("navigationPageButton")).click(); try { wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(btnMenu))); } catch (Exception e) { System.out.println("Oh"); } driver.findElement(By.cssSelector(btnMenu)).click(); Assert.assertEquals(driver.findElement(By.cssSelector(TitleResultPage)).getText(), Text); }

3
วิธีการรับคุณสมบัติของธาตุจากซีลีเนียม?
ฉันกำลังทำงานกับซีลีเนียมใน Python ฉันต้องการที่จะได้รับ.val()ของ<select>องค์ประกอบและตรวจสอบว่ามันเป็นสิ่งที่ผมคาดหวัง นี่คือรหัสของฉัน: def test_chart_renders_from_url(self): url = 'http://localhost:8000/analyse/' self.browser.get(url) org = driver.find_element_by_id('org') # Find the value of org? ฉันจะทำเช่นนี้ได้อย่างไร? เอกสารซีลีเนียมดูเหมือนจะมีมากมายเกี่ยวกับการเลือกองค์ประกอบ แต่ไม่มีอะไรเกี่ยวกับคุณลักษณะ

3
cssSelector & Xpath แตกต่างกันอย่างไรและข้อใดดีกว่าเมื่อเทียบกับประสิทธิภาพสำหรับการทดสอบข้ามเบราว์เซอร์
ฉันกำลังทำงานกับ Selenium WebDriver 2.25.0 บนเว็บแอปพลิเคชันหลายภาษาและทดสอบเนื้อหาของหน้าเป็นหลัก (สำหรับภาษาต่างๆเช่นอาหรับอังกฤษรัสเซียและอื่น ๆ ) สำหรับแอปพลิเคชันของฉันซึ่งดีกว่าตามประสิทธิภาพและตรวจสอบให้แน่ใจว่าควรรองรับเบราว์เซอร์ทั้งหมด (เช่น IE 7,8,9, FF, Chrome เป็นต้น) ขอบคุณล่วงหน้าสำหรับคำแนะนำที่มีค่าของคุณ

10
เมื่อเรียกใช้ WebDriver ด้วยเบราว์เซอร์ Chrome ได้รับข้อความ“ อนุญาตเฉพาะการเชื่อมต่อภายในเท่านั้น” แม้ว่าเบราว์เซอร์จะเปิดอย่างถูกต้อง
เมื่อฉันเรียกใช้เบราว์เซอร์ Chrome โดยใช้ WebDriver ฉันได้รับข้อความต่อไปนี้บนคอนโซล โปรดแจ้งให้เราทราบวิธีแก้ไข "การเริ่มต้น ChromeDriver (v2.10.267521) บนพอร์ต 22582" "อนุญาตเฉพาะการเชื่อมต่อภายในเท่านั้น" นี่คือโค้ดตัวอย่างของฉัน: public class Browserlaunch { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32 \\chromedriver.exe"); WebDriver driver = new ChromeDriver() ; driver.get("http://webdunia.com"); driver.close(); driver.quit(); } }

10
จะเลือกตัวเลือกจากดรอปดาวน์โดยใช้ Selenium WebDriver C # ได้อย่างไร?
ฉันพยายามทดสอบเว็บโดยเลือกตัวเลือก ดูตัวอย่างได้ที่นี่: http://www.tizag.com/phpT/examples/formex.php ทุกอย่างใช้งานได้ดียกเว้นการเลือกส่วนตัวเลือก จะเลือกตัวเลือกตามค่าหรือตามป้ายได้อย่างไร? รหัสของฉัน: using OpenQA.Selenium.Firefox; using OpenQA.Selenium; using System.Collections.ObjectModel; using System.Text.RegularExpressions; using System.Threading; using System.Diagnostics; using System.Runtime.InteropServices; class GoogleSuggest { static void Main() { IWebDriver driver = new FirefoxDriver(); //Notice navigation is slightly different than the Java version //This is because 'get' is a keyword in C# …

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