2016-09-05 16 views
5

Tôi đang sử dụng thư viện Watin trong ứng dụng biểu mẫu cửa sổ. Để ẩn trình duyệt, tôi sử dụng hướng dẫn này:Ẩn cửa sổ bật lên của trình duyệt - Watin

Settings.Instance.MakeNewIeInstanceVisible = false; 

Tuy nhiên, nó không ẩn cửa sổ bật lên (khi mô phỏng lần nhấp vào phần tử mở cửa sổ bật lên). Có cách nào để ẩn chúng không?

+0

Loại quảng cáo nào? Các hộp tin nhắn như cảnh báo và xác nhận? hoặc cửa sổ mới được mở bằng 'window.open'? –

+0

cửa sổ mới trên thực tế – Kira

+0

Tôi đã làm việc này bằng cách tiêm một số javascript vào trang được tải bằng Watin. Xin hãy nhìn vào câu trả lời của tôi. –

Trả lời

0

Tôi đã kiểm tra released notes và thấy điều này:

Bằng cách kiểm tra WatiN mặc định làm cho Internet Explorer trường tạo có thể nhìn thấy cho người dùng. Bạn có thể chạy thử nghiệm của mình ẩn bằng cách thay đổi cài đặt sau đây . Lưu ý rằng HTMLDialogs và bất kỳ cửa sổ bật lên nào sẽ được hiển thị ngay cả khi bạn đặt cài đặt này thành false (đây là hành vi mặc định của Internet Explorer hiện không thể bị chặn).

IE.Settings.MakeNewIeInstanceVisible = false; // default is true 

Kể từ WatIN chưa cập nhật kể từ năm 2011, tôi nghĩ rằng bạn sẽ không mong đợi bất kỳ hỗ trợ tính năng mới những gì bạn muốn.

Tôi không biết đây có phải là giải pháp hay không nhưng nếu những quảng cáo đó không phải là important thì tại sao bạn không chặn tất cả quảng cáo?

How to turn off popup blocker through code in Watin?

HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_WEBOC_POPUPMANAGEMENT 
Value = 0 for Off 
Value = 1 for On 
+0

Chúng thực sự quan trọng:/ – Kira

+0

@ HediNaily Vâng, những gì bạn muốn không được cung cấp bởi chúng. Tôi nghĩ có lẽ bạn phải thay đổi thư viện của bạn. –

0

Bạn có thể làm điều đó theo chương trình bằng cách chạy một số mã javascript và làm window.open chức năng để không làm gì cả!

Ví dụ

Here là một trang thử nghiệm tôi đã có một hình thức rất đơn giản và khi người dùng nhấp vào nút Sum, nó tóm tắt numA + numB và nó sẽ hiển thị kết quả trong một yếu tố <span id="result"></span> . Sau khi cập nhật văn bản kết quả, nó sẽ mở ra một cửa sổ popup bằng cách gọi window.open. Để làm cho cửa sổ popup này biến mất, chúng ta cần phải loại bỏ các window.open chức năng:

window['open'] = function() { return false; } 

Để làm điều đó bằng Watin, chúng ta phải sử dụng Eval chức năng và tiêm mã javascript như thế này:

browser.Eval("window['open'] = function() { return false; }"); 

Sau đó, tất cả các cửa sổ bật lên đã hết cho tải trang đó và chúng tôi có kết quả mong muốn.

# Mẫu mã C

private void buttonPopupdEnabled_Click(object sender, EventArgs e) 
{ 

    WatiN.Core.Settings.Instance.MakeNewIeInstanceVisible = false; 
    IE ie = new IE(); 

    ie.GoTo("http://zikro.gr/dbg/html/watin-disable-popups/"); 
    ie.Eval("window['open'] = function() { return false; }"); 
    ie.TextField(Find.ById("numA")).TypeText("15"); 
    ie.TextField(Find.ById("numB")).TypeText("21"); 
    ie.Button(Find.ById("sum")).Click(); 
    string result = ie.Span(Find.ById("result")).Text; 
    ie.Close(); 

    labelResult.Text = String.Format("The result is {0}", result); 
} 

Chương trình chạy trước khi javascript tiêm (Popup xuất hiện)

Popup without javascript injection

Chương trình chạy sau khi tiêm javascript (Popup đã biến mất)

enter image description here

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