2016-09-08 18 views
7

Tôi có popup với cấu trúc tên này:Làm cách nào để thực hiện lệnh regexp trong lệnh waitForPopUp trong Selenium IDE?

static_dynamic_static

Phần động thay đổi mỗi khi tôi đăng nhập để trường hợp thử nghiệm của tôi thất bại mỗi lần. Tôi nghĩ về việc giải quyết vấn đề với một biểu thức chính quy như thế này:

Command: waitForPopUp

Target: regexp: tĩnh _ + _ tĩnh

Nhưng điều này không làm việc.. Tôi làm gì sai? Điều này thậm chí làm việc. Nếu không, có cách nào khác để giải quyết vấn đề này không?

Trả lời

1

Từ kinh nghiệm của tôi, bạn không cần phải khai báo nó như một regex trong lĩnh vực mục tiêu, bạn nên chỉ có thể có các mục tiêu như:

static_*_static 

và rằng nên làm điều đó

+0

Điều này không có tác dụng đáng buồn. Không cho lệnh waitForPopUp và không cho lệnh thr selectWindow :( –

0

Nếu bạn đã có chỉ có một cửa sổ popup bạn có thể sử dụng null như một mục tiêu và thử nghiệm sẽ mất popup đầu tiên:

waitForPopup | null 

các tùy chọn khác là để có được một phần năng động trước khi mở cửa sổ bật lên. Rất có khả năng là phần động có thể được lấy ra từ trang. Nếu bạn có thể lấy nó bằng cách sử dụng storeEval và sử dụng như sau:

waitForPopup | javascript{'static'+storedVars['dynamic']+'static'} 

Nếu bạn không thể lưu phần động, vui lòng cung cấp html của trang hoặc chỉ một phần mà phần động được đề cập.

Tôi thấy rằng về mặt lý thuyết, có thể có được tất cả tên của cửa sổ và hơn là sử dụng mẫu trong vòng lặp để lấy mẫu.

Ngoài ra (về lý thuyết) có thể mở rộng chức năng waitForPopup mặc định.

Nhưng cách thứ hai và đặc biệt là thứ nhất rẻ hơn nhiều.

0

Cách tốt nhất để xử lý này có thể là để chạy một đoạn mã javascript để xử lý này:

<tr> 
    <td>storeEval</td> 
    <td>var myRe = new RegExp(&quot;^prefix.+&quot;, &quot;g&quot;); var mywin; windows=selenium.getAllWindowNames();for (i = 0; i &lt; windows.length; i++) { if(myRe.test(windows[i])) { mywin=windows[i]}&nbsp;&nbsp;};&nbsp;&nbsp;mywin;</td> 
    <td>x</td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>name=${myWindow}</td> 
    <td></td> 
</tr> 

Đó javascript không phải là đầy đủ chức năng (không kiểm tra null) nhưng nên giúp bạn đi đúng hướng .

Các vấn đề liên quan