Mr.HB i need ur help?

  • Автор темы Автор темы webmuthu
  • Дата начала Дата начала

webmuthu

Пользователь
Регистрация
27.11.2012
Сообщения
43
Реакции
0
Баллы
6
Mr. HB, thanks a lot for your valuable guidance. I did some work with your tricks. U the guy exactly understands my queries.

Here, let me tell u login "click" issue in login page.

Normally the page has login button only. Its submitting button and I set this for form value -1. I load random url from a list, varying in language. Some pages has search button also.
Both buttons having same attributes except their ID.

Look at these properties.

name="op"
id='edit-name1"
form=0

name="op"
id='edit-name2"
form=1

name="op"
id='edit-name3"
form=2

Id property is varying in login page depending upon the availability of search. If search button is available on the page, search event get raised. If not it works fine.

Simply says I can't predict the form number and ID of the login button. How can I fix this?

U really understands this, hoping so.
And one more, is there any C# code available for fixing escape string. (system&112; &113;&114;)

Thanks in advance
 
I do that with c# and first I find login field then I'm able to get form number of this filed. Login button will have the same form number as login field. So that's how I do that.
You can do that w/o code. Start formNumber from 0 and try to find login field if there is error - > increase form nmber+1. Finally you get it.
 
:beer:
 
yae........ i got it.

i've found some c# code from this discussion forum. And i modified for my query. this is the code. it works fine.

// get variables from project
string vURL = project.Variables["URL"].Value;
string vValue = project.Variables["sub_id"].Value;

// init
Tab tab = instance.ActiveTab;
Document doc = tab.MainDocument;

// setup form
HtmlElement myForm = doc.CreateElement("form");
myForm.SetAttribute("id", "user-login");
myForm.SetAttribute("method", "post");
myForm.SetAttribute("action", vURL);

HtmlElement hiddenField1 = doc.CreateElement("input");
hiddenField1.SetAttribute("type", "hidden");
hiddenField1.SetAttribute("name", "form_id");
hiddenField1.SetAttribute("value", "user_login");

HtmlElement myButton = doc.CreateElement("input");
myButton.SetAttribute("type", "submit");
myButton.SetAttribute("id", vValue);

// manipulate dom
doc.Body.AppendChild(myForm);
doc.FindElementById("myPostForm").AppendChild(hiddenField1);
doc.FindElementById(vValue).AppendChild(myButton);

// click submit button
doc.FindElementById(vValue).Click();
 
yae........ i got it.

i've found some c# code from this discussion forum. And i modified for my query. this is the code. it works fine.

// get variables from project
string vURL = project.Variables["URL"].Value;
string vValue = project.Variables["sub_id"].Value;

// init
Tab tab = instance.ActiveTab;
Document doc = tab.MainDocument;

// setup form
HtmlElement myForm = doc.CreateElement("form");
myForm.SetAttribute("id", "user-login");
myForm.SetAttribute("method", "post");
myForm.SetAttribute("action", vURL);

HtmlElement hiddenField1 = doc.CreateElement("input");
hiddenField1.SetAttribute("type", "hidden");
hiddenField1.SetAttribute("name", "form_id");
hiddenField1.SetAttribute("value", "user_login");

HtmlElement myButton = doc.CreateElement("input");
myButton.SetAttribute("type", "submit");
myButton.SetAttribute("id", vValue);

// manipulate dom
doc.Body.AppendChild(myForm);
doc.FindElementById("myPostForm").AppendChild(hiddenField1);
doc.FindElementById(vValue).AppendChild(myButton);

// click submit button
doc.FindElementById(vValue).Click();
 
I do that with c# and first I find login field then I'm able to get form number of this filed. Login button will have the same form number as login field. So that's how I do that.
You can do that w/o code. Start formNumber from 0 and try to find login field if there is error - > increase form nmber+1. Finally you get it.
How do you do that? I can't find a way to get number of the form.
html element has method ParentForm but how to get number of this form in document?
 
JavaScript:
Развернуть Свернуть Копировать
var tab = instance.ActiveTab;
if(tab.IsBusy) tab.WaitDownloading();
var he = tab.FindElementByAttribute("textarea","name","text","text",0);
var parentForm = he.ParentForm;
he = parentForm.FindChildByAttribute();
 
  • Оценить
Реакции: gemini
JavaScript:
Развернуть Свернуть Копировать
var tab = instance.ActiveTab;
if(tab.IsBusy) tab.WaitDownloading();
var he = tab.FindElementByAttribute("textarea","name","text","text",0);
var parentForm = he.ParentForm;
he = parentForm.FindChildByAttribute();

Ошибка в действии "CS1501" "No overload for method 'FindChildByAttribute' takes 0 arguments" в строке "he = parentForm.FindChildByAttribute();
"
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)