Câu hỏi phỏng vấn Python Selenium Guru99

Selenium là một khung thử nghiệm tự động mã nguồn mở [miễn phí] để xác thực các ứng dụng web trên nhiều trình duyệt và nền tảng. Selenium Test Scripts có thể được viết bằng nhiều ngôn ngữ lập trình, bao gồm Java, C#, Python và các ngôn ngữ khác. Kiểm tra Selenium là thuật ngữ để kiểm tra được thực hiện bằng công cụ kiểm tra Selenium

Phần mềm Selenium là một tập hợp các công cụ, mỗi công cụ phục vụ cho các yêu cầu kiểm tra Selenium QA của một tổ chức cụ thể. Sau đây là danh sách các công cụ được tích hợp trong Selenium

Môi trường phát triển tích hợp Selenium [IDE]

  • Điều khiển từ xa Selenium [RC]
  • Selenium WebDriver
  • Lưới Selenium

Jason Huggins là người phát minh ra Selenium vào năm 2004. Anh ấy đang làm kỹ sư tại ThoughtWorks trên một ứng dụng web yêu cầu kiểm tra thường xuyên. Anh ấy đã thiết kế một chương trình JavaScript có thể tự động kiểm soát hành vi của trình duyệt sau khi thấy rằng việc Kiểm tra thủ công lặp đi lặp lại đối với ứng dụng của họ ngày càng kém hiệu quả. Ứng dụng này được ông đặt tên là "JavaScriptTestRunner". Anh ấy đã phát hành mã nguồn mở JavaScriptRunner, sau đó được đổi tên thành Selenium Core, sau khi nhận thấy lời hứa về ý tưởng hỗ trợ tự động hóa các ứng dụng trực tuyến khác

Nguồn gốc của Điều khiển từ xa Selenium [Selenium RC]

Do các giới hạn do chính sách cùng nguồn gốc áp đặt, người kiểm tra Selenium Core phải cài đặt toàn bộ ứng dụng đang kiểm tra cũng như máy chủ web trên PC cục bộ của chính họ. Vì vậy, Paul Hammant, một kỹ sư khác của ThoughtWorks, đã quyết định xây dựng một máy chủ hoạt động như một proxy HTTP, đánh lừa trình duyệt nghĩ rằng Selenium Core và ứng dụng web đang được kiểm tra là từ cùng một miền. Điều khiển từ xa Selenium, hay Selenium 1, là tên được đặt cho hệ thống này

Sự khởi đầu của Selenium Grid

Patrick Lightbody đã tạo Selenium Grid để đáp ứng nhu cầu giảm thời gian thực hiện kiểm thử càng nhiều càng tốt. Lúc đầu, anh ấy đặt tên cho hệ thống là "Hosted QA". Nó có khả năng chụp ảnh màn hình trình duyệt trong các giai đoạn quan trọng, sau này có thể được phân tích, cũng như truyền các lệnh Selenium tới nhiều máy cùng một lúc

Nguồn gốc của Selenium IDE

Selenium IDE là một tiện ích mở rộng của Firefox được xây dựng bởi Shinya Kasatani của Nhật Bản, có thể tự động hóa trình duyệt bằng chức năng ghi và phát lại. Anh ấy đã nghĩ ra khái niệm này để tăng tốc quá trình xây dựng các trường hợp thử nghiệm hơn nữa. Năm 2006, ông đã đưa Selenium IDE cho Dự án Selenium

Nguồn gốc của WebDriver

WebDriver được thiết kế bởi Simon Stewart vào năm 2006, vào thời điểm mà các trình duyệt và ứng dụng web ngày càng có nhiều khả năng hơn đồng thời cũng trở nên hạn chế hơn, nhờ các công cụ JavaScript như Selenium Core. Đây là khung thử nghiệm đa nền tảng đầu tiên cho phép kiểm soát trình duyệt ở cấp hệ điều hành

Trong bài viết này, chúng tôi đã đề cập đến các câu hỏi phỏng vấn về Selenium java thường gặp nhất. Nếu bạn đang tham gia một cuộc phỏng vấn Selenium, bạn có thể mong đợi các câu hỏi từ kiểm tra tự động và cả Java.  

  • Câu hỏi phỏng vấn Selenium WebDriver

Hoàn thành cuộc phỏng vấn công nghệ tiếp theo của bạn với sự tự tin

Tham gia một cuộc phỏng vấn giả miễn phí, nhận phản hồi và đề xuất ngay lập tức⚡️💡

Sự kiện . Được cung cấp bởi

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Câu hỏi phỏng vấn Selenium dành cho người mới

1. Các thành phần của bộ Selenium là gì?

Selenium là một gói gồm một số công cụ kiểm tra và do đó thường được gọi là Bộ Selenium với mỗi công cụ này được thiết kế để phục vụ cho một yêu cầu kiểm tra khác nhau

Sau đây là các thành phần khác nhau của Selenium Suite

  • Môi trường phát triển tích hợp Selenium [IDE]. Đó là một plug-in của Firefox/Chrome được phát triển để tăng tốc độ tạo tập lệnh tự động hóa bằng cách ghi lại hành động của người dùng trên trình duyệt web và xuất chúng dưới dạng tập lệnh có thể tái sử dụng
  • Điều khiển từ xa Selenium [RC]. Nó là một máy chủ cho phép người dùng tạo các tập lệnh kiểm tra bằng ngôn ngữ lập trình ưa thích của họ. Nó chấp nhận các lệnh từ các tập lệnh kiểm tra và gửi chúng tới trình duyệt dưới dạng các lệnh JavaScript lõi Selenium, để trình duyệt hoạt động tương ứng
  • Selenium WebDriver. Nó là một giao diện lập trình giúp tạo và chạy các trường hợp thử nghiệm bằng cách giao tiếp trực tiếp với trình duyệt web và sử dụng khả năng tương thích riêng của nó để tự động hóa. Không giống như RC, nó không yêu cầu máy chủ bổ sung để tạo và chạy các trường hợp thử nghiệm
  • Lưới Selenium. Nó cho phép thực hiện song song các bài kiểm tra trên các trình duyệt và hệ điều hành khác nhau bằng cách phân phối đồng thời các lệnh cho các máy khác nhau

2. Kiểm thử tự động hóa là gì và lợi ích của nó là gì?

Kiểm thử tự động hoặc Kiểm thử tự động là quá trình tự động hóa quy trình kiểm thử thủ công của ứng dụng hoặc hệ thống bằng cách sử dụng các công cụ kiểm thử cho phép bạn tạo các tập lệnh có thể được thực thi lặp lại, tạo báo cáo kiểm thử chi tiết của ứng dụng hoặc hệ thống đang kiểm thử

Ưu điểm của Kiểm thử tự động là

  • Nó hỗ trợ cả kiểm tra hiệu suất và chức năng của một ứng dụng hoặc hệ thống
  • Nó tạo điều kiện cho việc thực hiện các trường hợp thử nghiệm lặp đi lặp lại
  • Nó cho phép thực hiện song song các trường hợp thử nghiệm
  • Nó cải thiện độ chính xác và hiệu quả của hệ thống bằng cách giảm sự can thiệp thủ công của con người để tạo các trường hợp thử nghiệm
  • Nó giúp kiểm tra một ma trận kiểm tra quy mô lớn
  • Nó tiết kiệm thời gian và tiền bạc quý giá cho nhóm thử nghiệm tham gia vào dự án

3. Những lợi thế của việc sử dụng Selenium như một công cụ tự động hóa là gì?

Sau đây là những ưu điểm của việc sử dụng Selenium để kiểm tra tự động

  • Mã nguồn mở. Sức mạnh lớn nhất của Selenium, như đã nói trước đây, là nó là một phần mềm miễn phí và công cụ di động. Không có chi phí xuất túi. Có thể tải xuống tiện ích miễn phí và trợ giúp dựa trên cộng đồng cũng có thể truy cập được
  • Hỗ trợ ngôn ngữ. Selenium hỗ trợ Java, Perl, Python, C#, Ruby, Groovy, JavaScript và các ngôn ngữ khác. Nó có kịch bản riêng, nhưng nó không bị ràng buộc bởi nó. Nó có thể hoạt động với nhiều ngôn ngữ khác nhau, tùy thuộc vào sở thích của nhà phát triển và người thử nghiệm
  • Tương thích với nhiều hệ điều hành khác nhau. Selenium có thể chạy trên nhiều hệ điều hành, bao gồm Windows, Mac OS X, Linux và UNIX. Một bộ thử nghiệm tùy chỉnh có thể được xây dựng trên bất kỳ nền tảng nào và sau đó được thực thi trên một nền tảng khác bằng cách sử dụng bộ sản phẩm Selenium. Ví dụ: bạn có thể viết các trường hợp thử nghiệm trong Windows và chạy chúng trên hệ thống Linux một cách dễ dàng
  • Tính tương thích của trình duyệt web. Selenium tương thích với nhiều trình duyệt web, bao gồm Internet Explorer, Chrome, Firefox, Opera và Safari. Khi chạy thử nghiệm và kiểm tra chúng trên nhiều trình duyệt cùng một lúc, điều này trở nên thực sự hữu ích
  • Ngôn ngữ lập trình và hỗ trợ khung. Selenium hoạt động với nhiều ngôn ngữ lập trình và framework. Ví dụ, để biên dịch mã nguồn, nó có thể tích hợp với các khung ANT hoặc Maven. Nó cũng có thể được sử dụng để kiểm tra ứng dụng và tạo báo cáo bằng khung TestNG. Tích hợp liên tục [CI], có thể tích hợp với Jenkins hoặc Hudson và nó cũng có thể tích hợp với các công cụ nguồn mở khác để cung cấp các chức năng khác
  • Thử nghiệm trên nhiều loại thiết bị. Trên Android, iPhone và Blackberry, Selenium Test Automation có thể được sử dụng để tự động kiểm tra các ứng dụng web di động. Điều này có thể hỗ trợ tạo ra các kết quả cần thiết và giải quyết liên tục các lỗi có trong ứng dụng
  • Cập nhật thường xuyên. Hỗ trợ Selenium dựa trên cộng đồng, cho phép cập nhật và nâng cấp thường xuyên. Những nâng cấp này rất đơn giản để cài đặt và không yêu cầu bất kỳ khóa đào tạo đặc biệt nào. Do đó, Selenium vừa tháo vát vừa tiết kiệm chi phí
  • Bộ Selenium với rất nhiều nội dung. Selenium không chỉ là một công cụ hoặc tiện ích đơn lẻ; . Mỗi công cụ được điều chỉnh theo nhu cầu kiểm tra cụ thể và các ràng buộc về môi trường kiểm tra. Selenium cũng bao gồm các tính năng như Selenium IDE, Selenium Grid và Selenium Remote Control [RC]
  • Dễ dàng mà nó có thể được thực hiện. Selenium có giao diện thân thiện với người dùng giúp dễ dàng phát triển và thực hiện các bài kiểm tra. Các khả năng mã nguồn mở của nó cho phép người dùng tạo tập lệnh cho các tiện ích mở rộng của riêng họ, giúp chúng dễ dàng tạo, thay đổi hành động và thao tác ở mức cao. Các tính năng báo cáo của Selenium cũng là một trong những lý do khiến nó trở nên phổ biến, vì nó cho phép người kiểm tra trích xuất kết quả và thực hiện hành động dựa trên chúng

Bạn có thể tải xuống phiên bản PDF của Câu hỏi phỏng vấn Selenium

Tải xuống PDF Tải xuống PDF  

tải PDF

Tải xuống yêu cầu của bạn đã sẵn sàng
nhấn vào đây để tai

4. Nhược điểm của việc sử dụng Selenium làm công cụ kiểm tra là gì?

Sau đây là những nhược điểm của việc sử dụng Selenium làm công cụ kiểm tra

  • Chỉ kiểm tra các ứng dụng web. Selenium chỉ hỗ trợ kiểm tra các ứng dụng dựa trên web. Không thể kiểm tra các ứng dụng di động, Captcha và trình đọc mã vạch bằng Selenium trừ khi được tích hợp với các công cụ của bên thứ ba như Appium và TestNG
  • Không có cơ sở quản lý thử nghiệm và báo cáo tích hợp. Selenium chỉ có thể tạo báo cáo bằng các công cụ của bên thứ ba như TestNG hoặc JUnit
  • Không có hỗ trợ kỹ thuật đáng tin cậy. Vì Selenium là một công cụ nguồn mở nên không có hỗ trợ riêng cho các vấn đề của người dùng
  • Có thể yêu cầu kiến ​​thức về ngôn ngữ lập trình. Cần có một số kiến ​​thức lập trình trước để sử dụng Selenium

5. Tại sao nên chọn Selenium làm công cụ kiểm thử cho ứng dụng web hoặc hệ thống?

Selenium cung cấp các ưu điểm sau, giúp nó trở thành một framework kiểm thử tự động tuyệt vời

  • Đây là phần mềm mã nguồn mở và miễn phí với cơ sở người dùng lớn và hỗ trợ cung cấp cộng đồng
  • Nó có khả năng tương thích giữa nhiều trình duyệt và hỗ trợ nhiều trình duyệt như Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari, v.v.
  • Nó hỗ trợ nhiều hệ điều hành như Windows, Linux, macOS, v.v.
  • Nó tạo điều kiện cho việc sử dụng nhiều ngôn ngữ lập trình bao gồm Scala, Ruby, Python, PHP, Perl, Java, Groovy, C#, v.v.
  • Nó cũng cung cấp hỗ trợ cho thử nghiệm phân tán

6. Selenium có thể được sử dụng để khởi chạy trình duyệt web không?

Có, Selenium cung cấp hỗ trợ tốt để khởi chạy các trình duyệt web như Google Chrome, Mozilla Firefox, Internet Explorer, v.v.

Các lệnh sau có thể được sử dụng để khởi chạy trình duyệt web bằng Selenium

  • temp = driver.Manage[].Timeouts[].ImplicitWait;
    0
  • temp = driver.Manage[].Timeouts[].ImplicitWait;
    1
  • temp = driver.Manage[].Timeouts[].ImplicitWait;
    2

7. Selenese nghĩa là gì?

Ngôn ngữ được sử dụng để viết test script trong Selenium IDE được gọi là Selenese. Nó là một tập hợp các lệnh được sử dụng để kiểm tra ứng dụng web hoặc hệ thống của bạn. Các lệnh Selenium có thể được chia thành 3 loại chính

  • hành động. Đây là những lệnh tương tác trực tiếp với ứng dụng web
  • phụ kiện. Đây là các lệnh cho phép người dùng lưu trữ các giá trị cho một biến do người dùng xác định
  • khẳng định. Chúng cho phép so sánh trạng thái hiện tại của ứng dụng với trạng thái dự kiến ​​của nó

8. Định vị nghĩa là gì và kể tên một số loại định vị khác nhau có trong Selenium

Bộ định vị là một địa chỉ để xác định duy nhất các phần tử web trong một trang web. Có nhiều loại công cụ định vị khác nhau có trong Selenium để xác định các thành phần web một cách độc đáo và chính xác như

  • TÔI
  • Tên lớp
  • Tên
  • tên thẻ
  • Văn bản liên kết
  • Văn bản liên kết một phần
  • Xpath
  • Bộ chọn CSS
  • DOM

9. Nêu sự khác biệt chính giữa các lệnh “khẳng định” và “xác minh” trong Selenium

Cả hai lệnh “khẳng định” và “xác minh” đều kiểm tra xem điều kiện đã cho là đúng hay sai và sự khác biệt duy nhất giữa chúng là

  • khẳng định. Điều kiện khẳng định dừng việc thực hiện kiểm tra nếu điều kiện đã cho là sai, nếu không thì sẽ tiếp tục với các kiểm tra tiếp theo
  • Kiểm chứng. Xác minh điều kiện không dừng luồng thực thi bất kể điều kiện là đúng hay sai

10. Kiểm tra ngoại lệ trong Selenium có nghĩa là gì?

Một bài kiểm tra ngoại lệ là một bài kiểm tra mong đợi một ngoại lệ được ném vào trong một lớp kiểm tra. Nó mong đợi một chú thích @Test theo sau là tên ngoại lệ dự kiến ​​trong ngoặc

Ví dụ.

temp = driver.Manage[].Timeouts[].ImplicitWait;
3 là một bài kiểm tra ngoại lệ cho các phần tử còn thiếu trong Selenium

11. XPath trong Selenium có nghĩa là gì. Giải thích XPath Tuyệt đối và XPath Tương đối

XPath, còn được định nghĩa là Đường dẫn XML [Đường dẫn ngôn ngữ đánh dấu mở rộng], là ngôn ngữ được sử dụng để truy vấn tài liệu XML và cung cấp các chức năng như định vị các phần tử trong Selenium bằng cách lặp qua từng phần tử trong trang web. Trong XPath, dữ liệu được lưu trữ ở định dạng cặp khóa-giá trị tương tự như thẻ HTML. Nó sử dụng một dấu gạch chéo duy nhất, tôi. e. ‘ / ’ để tạo đường dẫn tuyệt đối và dấu gạch chéo kép, tôi. e. ‘ // ’ để tạo đường dẫn tương đối cho phần tử được định vị trên trang web

12. Trong Xpath, sự khác biệt giữa "/" và "//" là gì?

Dấu gạch chéo đơn "/" - Một dấu gạch chéo đơn được sử dụng để tạo Xpath với đường dẫn tuyệt đối, i. e. XPath sẽ bắt đầu với nút tài liệu/nút bắt đầu

Ví dụ,

Absolute XPath: /html/body/div/div/form/input

Ở đây, /html là nút html gốc

Dấu gạch chéo kép "//" - Dấu gạch chéo kép được sử dụng để tạo Xpath với đường dẫn tương đối, nghĩa là Xpath có thể bắt đầu lựa chọn từ bất kỳ đâu trên trang

Ví dụ,

Relative XPath: //input[@id = 'email']

Tại đây, chúng ta có thể xác định vị trí đầu vào có id = ‘email’ hiện diện ở bất kỳ đâu trong mô hình đối tượng tài liệu [DOM]

13. Sự khác biệt giữa các lệnh "type" và "typeAndWait" trong ngữ cảnh của Selenium là gì?

Lệnh "type" được sử dụng để nhập các giá trị phím bàn phím vào hộp văn bản của ứng dụng web phần mềm. Nó cũng có thể được sử dụng để chọn các giá trị từ hộp tổ hợp, trong khi lệnh "typeAndWait" được sử dụng khi bạn nhập xong và trang web phần mềm bắt đầu tải lại. Lệnh này sẽ đợi trang của chương trình phần mềm tải lại trước khi tiếp tục. Bạn phải sử dụng lệnh "gõ" cơ bản nếu không có sự kiện tải lại trang khi gõ

14. Phân biệt giữa findElement[] và findElements[] trong ngữ cảnh của Selenium với các ví dụ thích hợp

Bảng sau liệt kê sự khác biệt giữa findElement[] và findElements[] trong Selenium

findElement[]findElements[]Phần tử web đầu tiên khớp với bộ định vị được trả về. Nó cung cấp cho bạn một danh sách tất cả các mục web phù hợp với công cụ định vị. Nếu không có phần tử web phù hợp, một NoSuchElementException được tạo ra. Nếu không có phần tử phù hợp, một danh sách trống được trả về. Cú pháp −
temp = driver.Manage[].Timeouts[].ImplicitWait;
4 Cú pháp −
temp = driver.Manage[].Timeouts[].ImplicitWait;
5
  • Sử dụng
    temp = driver.Manage[].Timeouts[].ImplicitWait;
    6. -
// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}

Giải thích - Ở đoạn code trên trước hết chúng ta import tất cả các header cần thiết sau đó setup driver cho trình duyệt chrome. Chúng tôi sử dụng phương pháp

temp = driver.Manage[].Timeouts[].ImplicitWait;
6 để tìm tất cả các giá trị có trong hàng thứ 2 của bảng trong trang web URL đã cho bằng cách sử dụng XPath của phần tử

  • Sử dụng
    temp = driver.Manage[].Timeouts[].ImplicitWait;
    8. -
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findTagname {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver",    "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].timeouts[].implicitlyWait[12, TimeUnit.SECONDS];
     driver.findElement[By.cssSelector["input[id='search']"]].sendKeys["Selenium"]; //Using id tagname attribute combination for css expression and get the element from findElement[]
     driver.close[];
  }
}

Giải thích - Ở đoạn code trên trước hết chúng ta import tất cả các header cần thiết sau đó setup driver cho trình duyệt chrome. Chúng tôi sử dụng phương thức findElement[] để tìm một phần tử đầu vào có thuộc tính id được đặt là tìm kiếm

15. Trong Selenium, làm thế nào bạn đợi cho đến khi một trang web được tải hoàn toàn?

Có hai phương pháp đảm bảo rằng trang web đã được tải hoàn toàn trong Selenium.  

Chúng như sau

1. Ngay sau khi tạo phiên bản webdriver, hãy đặt thời gian chờ ngầm định.  

temp = driver.Manage[].Timeouts[].ImplicitWait;

Trên mỗi lần điều hướng hoặc tải lại trang, điều này sẽ cố đợi cho đến khi trang được tải đầy đủ

2. Gọi tài liệu trả lại JavaScript. readyState cho đến khi "hoàn thành" được trả lại sau khi điều hướng trang. Là một trình thực thi JavaScript, phiên bản trình điều khiển web có thể được sử dụng.  

Ví dụ về mã

new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
     webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];

Câu hỏi phỏng vấn Selenium dành cho người có kinh nghiệm

16. Giải thích sự khác biệt giữa trình điều khiển. close[] và trình điều khiển. lệnh bỏ [] trong Selenium?

Sau đây là sự khác biệt chính giữa cả hai lệnh

  • Lệnh
    temp = driver.Manage[].Timeouts[].ImplicitWait;
    9 đóng cửa sổ hiện đang hoạt động mà người dùng đang làm việc hoặc cửa sổ đang được trình điều khiển web truy cập
  • Lệnh
    new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
         webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
    0, không giống như lệnh
    temp = driver.Manage[].Timeouts[].ImplicitWait;
    9, lệnh này đóng tất cả các cửa sổ do chương trình mở và do đó nên được sử dụng cẩn thận

Cả hai lệnh đều không nhận bất kỳ tham số nào và cũng không trả về bất kỳ giá trị nào

17. Giải thích các lệnh điều hướng khác nhau được hỗ trợ bởi Selenium?

Selenium có sự hỗ trợ của 4 lệnh điều hướng chủ yếu

  • new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
         webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
    2. Lệnh này được sử dụng để đưa người dùng đến trang web cuối cùng trong lịch sử trình duyệt
  • new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
         webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
    3. Lệnh này được sử dụng để đưa người dùng đến trang web tiếp theo của lịch sử trình duyệt
  • new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
         webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
    4. Lệnh này được sử dụng để tải lại các thành phần web của trang web bằng cách làm mới nó
  • new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
         webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
    5. Lệnh này được sử dụng để điều hướng đến một URL cụ thể trong trình duyệt web mới. Nó lấy URL được di chuyển đến, làm tham số

18. Giải thích chính sách cùng nguồn gốc và cách Selenium xử lý nó?

Chính sách cùng nguồn gốc là một tính năng được áp dụng cho mục đích bảo mật cho phép trình duyệt web chạy tập lệnh từ một trang web để truy cập nội dung của một trang web khác miễn là cả hai trang có cùng nguồn gốc. Lược đồ URL, tên máy chủ và tổ hợp số cổng được gọi là nguồn gốc. Chính sách này được đưa ra để ngăn chặn truy cập vào dữ liệu nhạy cảm trên một trang web bởi một trang web khác cho mục đích xấu. Hãy xem xét một chương trình Java được sử dụng bởi trình chia tỷ lệ. com, chương trình có thể truy cập các trang tên miền như scaler. com/người cố vấn, người chia tỷ lệ. com/các khóa học nhưng không có gì từ các miền khác nhau như facebook. com.  

Máy chủ Selenium [Selenium RC] hoạt động như một proxy HTTP được định cấu hình trên máy khách và "lừa" trình duyệt tin rằng Selenium Core và ứng dụng web đang được thử nghiệm đến từ cùng một nguồn gốc

19. Giải thích sự khác biệt giữa findElement[] và findElements[] trong Selenium

Sau đây là sự khác biệt chính giữa hai lệnh

1.

temp = driver.Manage[].Timeouts[].ImplicitWait;
8. lệnh được sử dụng để tìm một phần tử cụ thể trên một trang web, nó được sử dụng để trả về một đối tượng của phần tử được tìm thấy đầu tiên bởi bộ định vị. Ví dụ

 WebElement element = driver.findElement[By.id[example]];

2.

temp = driver.Manage[].Timeouts[].ImplicitWait;
6. lệnh được sử dụng để tìm tất cả các phần tử trong trang web được chỉ định bởi giá trị bộ định vị. Kiểu trả về của lệnh này là danh sách tất cả các phần tử web phù hợp. Ví dụ.  

List  elementList = driver.findElements[By.id[example]];

20. Giải thích tính năng tạm dừng trong Selenium IDE

Tính năng tạm dừng được xây dựng để xử lý các ngoại lệ trong tập lệnh kiểm tra bằng cách cho phép người dùng tạm dừng tại câu lệnh gây ra ngoại lệ và vào chế độ gỡ lỗi bằng cách nhấp vào biểu tượng tạm dừng ở góc trên cùng bên phải của IDE. Tính năng này ngăn ngừa lỗi của toàn bộ trường hợp thử nghiệm và cho người dùng cơ hội sửa lỗi ngay lập tức

21. Với sự trợ giúp của các đoạn mã, hãy giải thích cách chúng tôi có thể tạo các hành động nhấp chuột phải và di chuột trong Selenium

Đoạn mã sau có thể sao chép hành động nhấp chuột phải

actions action = newActions[driver];
WebElement element = driver.findElement[By.id["elementId"]]; 
action.contextClick[element].perform[];

Đoạn mã sau có thể sao chép hành động di chuột

actions action = newActions[driver];
WebElement element = driver.findElement[By.id["elementId"]];
action.moveToElement[element].perform[];

22. Chúng tôi có thể xử lý cửa sổ bật lên dựa trên cửa sổ trong Selenium không và nếu không, thì các lựa chọn thay thế là gì?

Không, Selenium không hỗ trợ cửa sổ bật lên dựa trên cửa sổ vì đây là công cụ kiểm tra tự động được xây dựng để kiểm tra dựa trên ứng dụng web. Tuy nhiên, với sự hỗ trợ của các công cụ bên thứ ba như AutoIT, Robot class, v.v. , cửa sổ bật lên dựa trên cửa sổ có thể được xử lý trong Selenium

23. Bạn có thể chụp ảnh màn hình bằng Selenium không?

Có, sử dụng trình điều khiển web trong Selenium, chúng tôi có thể chụp ảnh màn hình. Sau đây là mã để làm như vậy

Relative XPath: //input[@id = 'email']
0

24. Giải thích các loại framework khác nhau và kết nối Selenium với Robot Framework

Sau đây là các loại khung khác nhau

  • Khung phát triển hướng hành vi. Loại khung này cung cấp định dạng dễ đọc và dễ hiểu cho Nhà phân tích nghiệp vụ, Nhà phát triển, Người kiểm tra, v.v.
  • Khung kiểm tra theo hướng dữ liệu. Loại khung này giúp tách dữ liệu thử nghiệm khỏi logic tập lệnh thử nghiệm bằng cách lưu trữ dữ liệu thử nghiệm trong một số cơ sở dữ liệu bên ngoài dưới dạng các cặp khóa-giá trị. Các khóa này có thể được sử dụng để truy cập cũng như điền dữ liệu vào các tập lệnh kiểm tra
  • Khung kiểm tra theo hướng từ khóa. Loại khung này là một phần mở rộng của khung thử nghiệm theo hướng dữ liệu. Ngoài việc tách dữ liệu thử nghiệm và logic tập lệnh thử nghiệm, nó còn tách một phần mã tập lệnh thử nghiệm bằng cách lưu trữ nó trong tệp dữ liệu bên ngoài
  • Khung kiểm tra kiến ​​trúc thư viện. Loại khung này nhóm các bước phổ biến thành các chức năng trong thư viện và gọi các chức năng này khi được yêu cầu
  • Khung kiểm tra dựa trên mô-đun. Loại khung này chia mỗi ứng dụng thử nghiệm thành một số mô-đun hợp lý và riêng biệt, với mỗi mô-đun có tập lệnh thử nghiệm riêng biệt.
  • Khung thử nghiệm lai. Loại khung này là sự kết hợp của các khung nêu trên tận dụng tất cả các tính năng tốt của chúng

Robot Framework là một khung tự động hóa mã nguồn mở mô-đun có thể tương tác với các thư viện và chức năng của bên thứ 3. Để thực thi một thư viện thử nghiệm web chẳng hạn như Selenium, cần có trình chạy tự động hóa thử nghiệm hoặc trình bao bọc tự động hóa, được cung cấp cho nó dưới dạng Robot Framework. Các trình chạy thử nghiệm phổ biến khác để phục vụ cùng mục đích là MSTest, TestNG, Nunit, Junit, v.v.

Sơ đồ dưới đây cho thấy kết nối của khung Robot với thư viện Selenium

25. Chứng minh việc sử dụng Selenium thông qua một ứng dụng thử nghiệm

Bạn cần các điều kiện tiên quyết sau để chạy tập lệnh thử nghiệm Selenium demo

  • Java SDK trong Hệ điều hành tương ứng của bạn
  • Một IDE dựa trên Java như Eclipse hoặc IntelliJ
  • Một Selenium WebDriver sẽ được thêm vào dưới dạng phụ thuộc vào Java IDE
Relative XPath: //input[@id = 'email']
1

Khi bạn chạy tập lệnh trên trong Java IDE, bạn sẽ nhận được nhật ký thực thi sau được hiển thị trong cửa sổ IDE của mình

26. Giải thích các bước cơ bản của thử nghiệm Selenium và các lệnh được sử dụng rộng rãi của nó thông qua một ứng dụng thực tế

Thử nghiệm Selenium có thể được chia thành bảy yếu tố cơ bản sau

1. Tạo một phiên bản của Webdriver. Đây là bước đầu tiên cho tất cả các cách sử dụng API webdriver Selenium. Một thể hiện của giao diện webdriver được tạo bằng hàm tạo của một trình duyệt cụ thể. Phiên bản webdriver này được sử dụng để gọi các phương thức và truy cập các giao diện khác. Sau đây là các lệnh được sử dụng phổ biến nhất để khởi tạo trình điều khiển web

Relative XPath: //input[@id = 'email']
2

2. Điều hướng đến một trang web. Bước thứ hai sau khi khởi tạo phiên bản trình điều khiển web, để điều hướng đến một trang web cụ thể mà bạn muốn kiểm tra. Sau đây là các lệnh được sử dụng phổ biến nhất để điều hướng trang web

Relative XPath: //input[@id = 'email']
3

3. Định vị một phần tử HTML trên trang web. Để tương tác với một phần tử web và thực hiện các hành động trên phần tử đó như nhấp vào nút hoặc nhập văn bản, trước tiên chúng ta cần xác định vị trí các phần tử mong muốn như nút hoặc hộp văn bản trên trang web. Sau đây là các lệnh được sử dụng phổ biến nhất để điều hướng phần tử web

Relative XPath: //input[@id = 'email']
4

4. Thực hiện các hành động trên một phần tử HTML. Khi chúng tôi đã xác định được phần tử HTML, bước tiếp theo là tương tác với nó. Sau đây là các lệnh được sử dụng phổ biến nhất để thực hiện các hành động trên phần tử HTML

Relative XPath: //input[@id = 'email']
5

5. Dự đoán phản hồi của trình duyệt từ hành động. Khi một hành động được thực hiện, dự đoán phản hồi từ trình duyệt để kiểm tra sẽ xuất hiện trong bước này. Phải mất một hoặc hai giây để hành động đến được trình duyệt và do đó, bước này thường phải đợi. Có hai loại điều kiện chờ chính

Chờ đợi tiềm ẩn. Nó đặt thời gian cố định, xác định cho tất cả các tương tác webdriver. Nó hơi không đáng tin cậy vì thời gian phản hồi của trình điều khiển web thường không thể đoán trước. Ví dụ.  

Relative XPath: //input[@id = 'email']
6

chờ đợi rõ ràng. Loại điều kiện chờ này đặt điều kiện dự kiến ​​xảy ra trên trang web hoặc thời gian chờ tối đa cho tất cả các tương tác của trình điều khiển web. Ví dụ.  

Relative XPath: //input[@id = 'email']
7

6. Chạy thử nghiệm và ghi lại kết quả của chúng bằng khung thử nghiệm. trong bước này, chúng tôi chạy thử nghiệm trong tập lệnh thử nghiệm tự động để đánh giá chức năng và hiệu suất của ứng dụng. Các khung thử nghiệm khác nhau được sử dụng cho bước này, chẳng hạn như

  1. JUnit cho Java
  2. NUnit cho C#
  3. Unittest hoặc Pyunit cho Python
  4. RUnit cho Ruby

Hầu hết các khung sử dụng một số loại tuyên bố tài sản để xác minh kết quả thử nghiệm của họ từ kết quả mong đợi. Ví dụ.  

Relative XPath: //input[@id = 'email']
8

7. Kết thúc một bài kiểm tra. Trong bước này, chúng tôi kết thúc kiểm tra bằng cách gọi phương thức thoát trên biến trình điều khiển. Bước này sẽ đóng tất cả các trang web, thoát khỏi máy chủ WebDriver và giải phóng trình điều khiển. Ví dụ

Relative XPath: //input[@id = 'email']
9

Sau đây là một ví dụ về một ứng dụng bao gồm tất cả các bước được đề cập ở trên

// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}
0

27. Bạn hiểu gì về Page Object Model trong ngữ cảnh của Selenium?

Mô hình đối tượng trang [POM] là một mẫu thiết kế tạo Kho lưu trữ đối tượng cho các phần tử giao diện người dùng web và được sử dụng rộng rãi trong tự động hóa thử nghiệm. Mô hình có ưu điểm là giảm trùng lặp mã và cải thiện khả năng bảo trì kiểm tra. Theo mô hình này, mỗi trang web trong ứng dụng phải có Lớp trang riêng. Lớp Trang này sẽ xác định các WebElements của trang web và cũng có các phương thức Page hoạt động trên các WebElements đó. Tên của các phương thức này phải tương ứng với các tác vụ mà chúng thực hiện, ví dụ: nếu một trình tải đang đợi cổng thanh toán xuất hiện, tên phương thức POM có thể là

new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
     webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
8

Sau đây là những ưu điểm của Mô hình đối tượng trang [POM]

  • Theo Mẫu thiết kế đối tượng trang, các hoạt động và luồng giao diện người dùng phải được tách biệt khỏi xác minh. Mã của chúng tôi rõ ràng và dễ hiểu hơn nhờ khái niệm này
  • Ưu điểm thứ hai là kho đối tượng độc lập với các trường hợp thử nghiệm, cho phép chúng tôi sử dụng lại cùng một kho đối tượng với các công cụ khác nhau. Ví dụ: chúng ta có thể sử dụng Selenium để kết hợp Mô hình đối tượng trang với TestNG/JUnit để kiểm tra chức năng và JBehave/Cucumber để kiểm tra khả năng chấp nhận
  • Do các phương thức trang có thể tái sử dụng trong các lớp POM, mã ngày càng ít hiệu quả hơn
  • Các phương thức được đặt tên thực tế hơn có thể dễ dàng liên kết với thao tác giao diện người dùng. Nếu chúng tôi đến trang chủ sau khi nhấp vào nút, tên chức năng sẽ là 'gotoHomePage[]'

28. Bạn hiểu gì về Jenkins?

Hudson Lab's Jenkins là công nghệ tích hợp liên tục mã nguồn mở phổ biến nhất. Đó là nền tảng chéo, có nghĩa là nó có thể chạy trên Windows, Linux, Mac OS và Solaris. Jenkins là một ứng dụng Java. Mục đích chính của Jenkin là theo dõi bất kỳ công việc nào, chẳng hạn như kiểm tra SVN [Apache Subversion], công việc định kỳ hoặc trạng thái ứng dụng. Khi một sự kiện cụ thể trong một ứng dụng xảy ra, nó sẽ kích hoạt các hành động được định cấu hình trước. Tìm hiểu thêm

Sau đây là các tính năng của Jenkins

  • Ví dụ, Jenkins tạo danh sách tất cả các thay đổi được thực hiện trong kho SVN
  • Jenkins cung cấp các liên kết vĩnh viễn đến bản dựng gần đây nhất hoặc bản dựng bị lỗi, có thể được sử dụng để liên lạc thuận tiện
  • Jenkins cài đặt đơn giản bằng tệp cài đặt trực tiếp [exe] hoặc tệp chiến tranh để triển khai qua máy chủ ứng dụng
  • Jenkins có thể được thiết lập để gửi nội dung của trạng thái bản dựng tới một địa chỉ email
  • Cấu hình đơn giản. Jenkins làm cho việc thiết lập nhiều tác vụ trở nên đơn giản
  • Jenkins có thể được định cấu hình để chạy bản dựng thử nghiệm tự động trên TestNg sau mỗi bản dựng SVN
  • Jenkins ghi lại các chi tiết của jar, phiên bản của nó và ánh xạ của số bản dựng và số jar
  • bổ sung. Jenkins có thể được thiết lập để sử dụng các tính năng và chức năng bổ sung do plugin của bên thứ ba cung cấp

Sau đây là những lý do chúng tôi sử dụng Jenkins với Selenium

  • Khi bạn chạy thử nghiệm Selenium trong Jenkins, bạn có thể chạy chúng mỗi khi chương trình của bạn thay đổi và khi vượt qua thử nghiệm, bạn có thể triển khai phần mềm sang môi trường mới
  • Jenkins có thể thực hiện các bài kiểm tra của bạn tại một thời điểm xác định trước
  • Lịch sử thực thi cũng như Báo cáo thử nghiệm có thể được lưu lại
  • Jenkins cho phép bạn phát triển và thử nghiệm một dự án tích hợp liên tục bằng Maven

29. Bạn sẽ chọn ngày từ công cụ chọn ngày trong trang web sử dụng Selenium để kiểm tra tự động như thế nào?

Trong những loại câu hỏi như vậy, người phỏng vấn muốn đánh giá mức độ hiểu biết của bạn về khuôn khổ. Một cách thực hành tốt là giải thích mã trong khi bạn viết mã để người phỏng vấn chú ý vào mọi điểm và không cảm thấy bị bỏ rơi. Chúng tôi sẽ xem xét một ví dụ trên MakeMyTrip

Ở đây, chúng tôi sẽ sử dụng trình duyệt chrome và vì vậy chúng tôi sẽ chỉ triển khai mã cho trình duyệt chrome. Bạn cũng có thể triển khai mã tương tự cho firefox và các trình duyệt khác.  

Trước hết, chúng tôi tạo một gói có tên browserSelection chứa một lớp được xác định để xử lý các loại trình duyệt khác nhau như chrome, firefox mà chúng tôi có thể muốn sử dụng.  

// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}
1

Tiếp theo, chúng tôi tạo một gói có tên datepicker sẽ chứa một lớp chứa các phương thức được xác định để chọn một ngày cụ thể trên trang web của MakeMyTrip. Chúng ta cần nhập gói này vào lớp trình điều khiển của mình và gọi các phương thức tương ứng

// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}
2

Trong đoạn mã trên, hàm

new WebDriverWait[firefoxDriver, pageLoadTimeout].until[
     webDriver -> [[JavascriptExecutor] webDriver].executeScript["return document.readyState"].equals["complete"]];
9 được sử dụng để gọi phương thức
 WebElement element = driver.findElement[By.id[example]];
0 từ gói đã nhập browserSelection. Hàm
 WebElement element = driver.findElement[By.id[example]];
1 được sử dụng để chọn ngày hiện tại từ bộ chọn ngày của trang web mẫu. Hàm
 WebElement element = driver.findElement[By.id[example]];
2 được sử dụng để đóng các kết nối trình điều khiển bằng cách gọi phương thức
 WebElement element = driver.findElement[By.id[example]];
3

30. Bạn hiểu gì về các liên kết bị hỏng?

Liên kết hoặc URL không thể truy cập được gọi là liên kết bị hỏng. Chúng có thể không khả dụng hoặc không hoạt động được do sự cố máy chủ. Trạng thái của URL sẽ luôn là 2xx, cho biết rằng URL đó hợp pháp. Có nhiều loại mã trạng thái HTTP, mỗi mã có một bộ chức năng riêng. Trạng thái HTTP 4xx và 5xx cho biết yêu cầu không hợp lệ. Lớp 4xx của mã trạng thái được sử dụng cho lỗi phía máy khách, trong khi lớp 5xx được sử dụng cho lỗi phản hồi của máy chủ

Bạn phải luôn kiểm tra các liên kết bị hỏng trên trang web của mình để đảm bảo rằng người dùng không kết thúc trên một trang lỗi. Nếu các quy tắc không được cập nhật phù hợp hoặc các tài nguyên được yêu cầu không có sẵn trên máy chủ, lỗi sẽ xảy ra. Kiểm tra liên kết thủ công là một công việc tốn nhiều thời gian vì mỗi trang web có thể có một số lượng lớn liên kết và quá trình này phải được thực hiện cho từng trang.  

Để tìm các liên kết bị hỏng trong Selenium, hãy làm theo hướng dẫn bên dưới

// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}
3

Giải thích - Trong đoạn mã trên, trước tiên chúng tôi thiết lập các thuộc tính hệ thống và sau đó khởi tạo một đối tượng webdriver. Chúng tôi tìm thấy tất cả các phần tử trong trang web có thẻ neo với sự trợ giúp của phương pháp

temp = driver.Manage[].Timeouts[].ImplicitWait;
6. Sau đó, chúng tôi lặp lại danh sách thu được từng cái một và kích hoạt URL và đọc mã phản hồi nhận được để kiểm tra xem đó có phải là liên kết bị hỏng hay không

31. Bạn hiểu gì về window handle trong bối cảnh kiểm thử tự động?

Tay cầm cửa sổ là một mã định danh có một không hai chứa địa chỉ của tất cả các cửa sổ. Hãy coi nó là một con trỏ cửa sổ trả về giá trị chuỗi. Mỗi trình duyệt có lẽ sẽ có tay cầm cửa sổ riêng. Hàm xử lý cửa sổ này hỗ trợ truy xuất tất cả các tay cầm cửa sổ
cú pháp

Hãy để chúng tôi xem xét một mã ví dụ để hiểu rõ hơn. Chúng tôi sẽ mở trang web của InterviewBit và sau đó nhấp vào tất cả các liên kết có sẵn trên trang web. Sau đó, chúng ta sẽ chuyển từ cửa sổ cha sang nhiều cửa sổ con khác nhau rồi chuyển về cửa sổ cha cuối cùng

// JAVA
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class findElements {
  public static void main[String[] args] {
     System.setProperty["webdriver.chrome.driver", "C:\\Users\\vaibhav\\Desktop\\Java\\chromedriver.exe"];
     WebDriver driver = new ChromeDriver[];
     String url = "//www.exampleurl.com/example.htm";
     driver.get[url];
     driver.manage[].window[].maximize[];
     driver.manage[].timeouts[].implicitlyWait[10, TimeUnit.SECONDS];
     
     List rows = driver.findElements[By.xpath["//table/tbody/tr[2]/td"]]; // xpath with index appended to get the values from the row 1of table using findElements[], which returns a list
     System.out.println["The number of values in row 2 is "+ rows.size[]];
     driver.close[];
  }
}
4

Trong đoạn code trên, chúng ta mở landing page của interviewbit rồi tìm tất cả các phần tử có thẻ anchor và nhấp vào chúng để mở nhiều cửa sổ con. Sau đó, chúng tôi lặp qua từng cửa sổ con và in chúng dưới dạng một chuỗi. Cuối cùng, sau khi duyệt qua toàn bộ danh sách, chúng tôi thoát khỏi vòng lặp và chuyển về cửa sổ chính

Làm thế nào để Python giải thích khung Selenium trong cuộc phỏng vấn?

Kể về các loại khung bạn đã sử dụng Lớp Test-Base . Mọi khung đều có Lớp cơ sở; . , trong lớp cơ sở thử nghiệm. Vì vậy, bạn cần cung cấp một số điểm nhấn cho phần này trong khi giải thích và đến với bộ định vị phần tử.

Các câu hỏi phỏng vấn cơ bản trong Selenium là gì?

Câu hỏi phỏng vấn Selenium cấp độ mới bắt đầu .
Các thành phần của bộ Selenium là gì?.
Những hạn chế của thử nghiệm Selenium là gì?.
Các loại thử nghiệm được hỗ trợ bởi Selenium là gì?.
Sự khác biệt giữa Selenium 2 là gì. 0 và Selenium 3. 0?.
Chính sách cùng nguồn gốc là gì và nó được xử lý như thế nào?.
Selene là gì?

Làm cách nào để sử dụng Python trong Selenium?

Có các bước sau để định cấu hình Selenium bằng Python. .
Tải xuống và cài đặt Python trên Windows
Cài đặt thư viện Selenium trong Python
Tải xuống và cài đặt PyCharm
Tạo một dự án mới và viết kịch bản thử nghiệm Selenium
Chạy và xác thực các kịch bản thử nghiệm

POM trong câu hỏi phỏng vấn Selenium là gì?

Mô hình đối tượng trang [POM] là một nguyên tắc thiết kế trong Selenium mà các nhà phát triển sử dụng để tạo các kho lưu trữ đối tượng riêng biệt và lưu trữ các phần tử web, như liên kết và nút. Developers use this design pattern in test automation to reduce the duplication of code and facilitate efficient test maintenance.

Chủ Đề