2012-01-13 2 views
1

Я просто с помощью , чтобы заполнить некоторые текстовые поля, но иногда он пишет в неправильном текстовом поле, так как имя текстовых полей не ясно, вот мой кодC# прыгая некоторые текстовые поля, как searchboxes

IE browser = new IE(site); 
browser.TextField(Find.By("type","text")).TypeTextQuickly(username.ToString()); 
browser.TextField(Find.By("type", //"password")).TypeTextQuickly(pass.ToString()); 
browser.Button(Find.By("type", "submit")).Click(); 
+0

Что такое URL-адрес веб-сайта? –

+0

нет конкретного сайта Я пытаюсь для всех сайтов, я просто хочу пропустить поисковые ящики. – user1094138

ответ

0

Редактировать ваш HTML-код и настройка ID для ваших элементов ввода. Затем используйте Find.ById

+0

сайт не мой сайт :) – user1094138

+0

Тогда, пожалуйста, прикрепите html-код сайта. Затем мы можем найти «лучший»/«уникальный» способ получить элементы, которые я думаю. – Grrbrr404

+0

Есть более двух сайтов, которые я просто пытаюсь войти в систему с watin – user1094138

0

Один из вариантов может состоять в том, чтобы увидеть, есть ли внешний элемент (например, Div), который вы можете найти первым, а затем получить текстовые поля из этого элемента, а не из переменной браузера. Это может, например, выглядеть следующим образом:

Div div = browser.Div(Find.ById("divId")); 
//Div div = browser.Div(Find.ByClass("divClass")); // or like this for instance... 
TextField text = div.TextField(Find.By("type", "text")); 
TextField password = div.TextField(Find.By("type", "password")); 
Button submit = div.Button(Find.By("type", "submit")); 
0

Я неясно, ваши знания WatiN и тестирования, так что я начну с begginging. Сначала вам нужно перейти на веб-страницу, которую вы хотите протестировать, и (в IE) перейти к инструментам -> Инструменты разработчика. Нажмите белую стрелку в меню, затем перейдите к окну, который вы хотите использовать. Как только вы это сделаете, инструменты разработчика предоставят вам код для текстового поля, включая многие способы ссылки на него в вашем коде. Например, с помощью средства разработки в IE можно автоматизировать регистрацию в мой Gmail, как это:

IE browser = new IE("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2"); 

browser.TextField(Find.ByID("Email")).TypeText("[email protected]"); 
browser.TextField(Find.ByID("Passwd")).TypeText("mypassword"); 
browser.Button(Find.ByID("signIn")).Click(); 

Есть много Find.By команд, поэтому нет никаких причин, вы не можете Асесс ЛЮБОГО текстового поля вы хотите. Вам просто нужен html и быть конкретным, к которому вы хотите писать. Надеюсь, это поможет :)

Смежные вопросы