2012-04-05 43 views
11

Tôi có HTML sau:WatiN hỗ trợ cho các thẻ HTML5

<input type="email" id="email"> 

Tôi muốn gõ văn bản vào nó từ WatiN:

var field = Browser.TextField("email"); 
Assert.IsTrue(field.Exists); 

Nhưng lĩnh vực này không thể được tìm thấy. Điều này là do WatiN chưa hỗ trợ thẻ HTML5. Tôi tìm thấy một solution này bằng cách tạo ra một TextField lớp mở rộng:

[ElementTag("input", InputType = "text", Index = 0)] 
[ElementTag("input", InputType = "password", Index = 1)] 
[ElementTag("input", InputType = "textarea", Index = 2)] 
[ElementTag("input", InputType = "hidden", Index = 3)] 
[ElementTag("textarea", Index = 4)] 
[ElementTag("input", InputType = "email", Index = 5)] 
[ElementTag("input", InputType = "url", Index = 6)] 
[ElementTag("input", InputType = "number", Index = 7)] 
[ElementTag("input", InputType = "range", Index = 8)] 
[ElementTag("input", InputType = "search", Index = 9)] 
[ElementTag("input", InputType = "color", Index = 10)] 
public class TextFieldExtended : TextField 
{ 
    public TextFieldExtended(DomContainer domContainer, INativeElement element) 
     : base(domContainer, element) 
    { 
    } 

    public TextFieldExtended(DomContainer domContainer, ElementFinder finder) 
     : base(domContainer, finder) 
    { 
    } 

    public static void Register() 
    { 
     Type typeToRegister = typeof (TextFieldExtended); 
     ElementFactory.RegisterElementType(typeToRegister); 
    } 
} 

Sau khi đăng ký các loại và chạy mã nó vẫn không hoạt động. Bất cứ ai có thể thấy lý do tại sao hoặc có ai có cách giải quyết khác cho vấn đề này không?

+1

Cảm ơn - công trình tuyệt vời - bạn đã bỏ qua một thuộc tính: [ElementTag ("input", InputType = "tel", Index = 11)] –

Trả lời

14
var field = Browser.TextField("email"); 

Cố gắng lấy TextField bằng email id và do đó không thành công cho loại TextFieldExtended.

var field = Browser.ElementOfType<TextFieldExtended>("email"); 

Lấy TextFieldExtended với email id.

+1

Nếu bất kỳ ai khác không có quyền truy cập vào 'TextFieldExtend': https: // github .com/sergiomokshin/DiarioEscolar/blob/master/DiarioEscolar.AcceptanceTests/StepHelpers/TextFieldExtended.cs – BenR

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