Tôi đang viết một bài kiểm tra JUnit cho một trang web, sử dụng Selenium và tôi đang cố gắng xác minh rằng văn bản mong muốn tồn tại trong một trang. Mã của trang web tôi đang thử nghiệm trông như sau:Selenium: Trích xuất văn bản của một div với cssSelector trong Java
<div id="recipient_div_3" class="label_spacer">
<label class="nodisplay" for="Recipient_nickname"> recipient field: reqd info </label>
<span id="Recipient_nickname_div_2" class="required-field"> *</span>
Recipient:
</div>
tôi muốn so sánh gì được mong đợi với những gì trên trang, vì vậy tôi muốn sử dụng Assert.assertTrue(). Tôi biết rằng để có được tất cả mọi thứ từ các div, tôi có thể làm
String element = driver.findElement(By.cssSelector("div[id='recipient_div_3']")).getText().replaceAll("\n", " ");
nhưng điều này sẽ trở lại "reqd thông tin * Người nhận:"
Có cách nào để chỉ nhận được văn bản từ div ("Người nhận ") sử dụng cssSelector, không có các thẻ khác?
Các locator XPath cung cấp là hợp lý và làm việc trong giao diện điều khiển của Chrome, nhưng nó sẽ không làm việc trong Selenium. Selenium sẽ ném lỗi sau đây ... 'Bộ chọn được chọn // div [@ class = 'StdLevel1']/text() không hợp lệ hoặc không dẫn đến một WebElement. Lỗi sau xảy ra: InvalidSelectorError: Kết quả của biểu thức xpath "// div [@ class = 'StdLevel1']/text()" là: [đối tượng Văn bản]. Nó phải là một element.' – BSchlinker
Vì vậy, có một giải pháp hoặc bạn sẽ chỉ lấy div và phân tích cú pháp chuỗi getText()? –
Với sự hiểu biết của tôi, selen Infact làm cho phép hàm văn bản(), nút, vv. – SIslam