PDA

View Full Version : سوال: راهنمایی برای کلیک روی دکمه در webbrowser



samadblaj
پنج شنبه 24 مرداد 1392, 13:18 عصر
سلام دوستان دارم روی یه ربات کار میکنم یه جایش یه مشکل دارم
عکس پیوستی صفحه مورد نظر که میخوام روی تمامی دکمه ها کلیک کنم و عمل دیگر ودوباره دکمه دیگه...
یعنی میخواممتوالی ثبت کنم اما نشد روی دکمه کلیک کنم کد دکمه هم به این شکله...

<input value="Book it" class="button-book-it" type="submit">

از این روش روی دکمه book it کلیک کردم اما دکمه شماره آخر رو انتخاب میکنه من میخوام یه دکمه خاص رو انتخاب کنم؟
HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement el in elc)
{
if (el.GetAttribute("value").Equals("Book it"))
{
el.InvokeMember("Click");
}
}

danialafshari
پنج شنبه 24 مرداد 1392, 14:01 عصر
سلام
این روی گوگل است
با وبت تطبیقش بده
private void button1_Click(object sender, EventArgs e)
{
HtmlDocument doc = this.webBrowser1.Document;
webBrowser1.Document.GetElementById("btnK").InvokeMember("click");
}

samadblaj
پنج شنبه 24 مرداد 1392, 14:18 عصر
سلام آقای افشار ابتدا مدیر شدنتون رو به خودتون و آقای صفا تبریک میگم و براتون آرزوی موفقیت میکنم.
نه ببینید به پست من توجه نکردید من میتونم روی یک دکمه کلیک کنم ولی روی این دکمه ها نیمتونم این دکمه ها خصوصیت id رو ندارند...
من یه استراتژی میخوام که وقتی روی دکمه اول کلیک کردم برگرده و روی دکمه دوم کلیک کنه و همینطور بره جلو (شاید تنها راه ارسال tab باشه ).
سورس دکمه اول اینه :

<input value="Book it" class="button-book-it" type="submit">
سورس دکمه دوم اینه :

<input value="Book it" class="button-book-it" type="submit">
پس کد های یکسانی دارند به خاطر اینه که دکمه ها توی گرید هستند.
و کد شما اصلا بدرد من نمیخوره چون همونطور که میبینید توی سورس بر خلاف دکمه های دیگه شناسه id برای استفاده از کدتون نیست.

تنها با کد زیر میشه روی دکمه ها کلیک کرد اما نمیتونم بهش دستور بدم روی دکمه دوم یا سوم کلیک کن.
HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("in put");
foreach (HtmlElement el in elc)
{
if (el.GetAttribute("value").Equals("Book it"))
{
el.InvokeMember("Click");
}
}

مهرداد صفا
پنج شنبه 24 مرداد 1392, 14:28 عصر
سلام آقای افشار ابتدا مدیر شدنتون رو به خودتون و آقای صفا تبریک میگم و براتون آرزوی موفقیت میکنم.
نه ببینید به پست من توجه نکردید من میتونم روی یک دکمه کلیک کنم ولی روی این دکمه ها نیمتونم این دکمه ها خصوصیت id رو ندارند...
من یه استراتژی میخوام که وقتی روی دکمه اول کلیک کردم برگرده و روی دکمه دوم کلیک کنه و همینطور بره جلو (شاید تنها راه ارسال tab باشه ).
سورس دکمه اول اینه :

<input value="Book it" class="button-book-it" type="submit">
سورس دکمه دوم اینه :

<input value="Book it" class="button-book-it" type="submit">
پس کد های یکسانی دارند به خاطر اینه که دکمه ها توی گرید هستند.
و کد شما اصلا بدرد من نمیخوره چون همونطور که میبینید توی سورس بر خلاف دکمه های دیگه شناسه id برای استفاده از کدتون نیست.

تنها با کد زیر میشه روی دکمه ها کلیک کرد اما نمیتونم بهش دستور بدم روی دکمه دوم یا سوم کلیک کن.
HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("in put");
foreach (HtmlElement el in elc)
{
if (el.GetAttribute("value").Equals("Book it"))
{
el.InvokeMember("Click");
}
}


با سلام.
خواهش می کنم.
با استفاده از متود GetElementsByTagName لیست Submit ها را گرفته و با استفاده از اندیس به element مورد نظر دسترسی پیدا کنید.

samadblaj
پنج شنبه 24 مرداد 1392, 14:41 عصر
سلام ممنونم سر زدید
باور کنیدمشکلم همینه نمی دونم باید چیکار کنم با Element ها زیاد کار نکردم نتونستم کاری کنم لطفا اگه نمونه ای دارید برام قرار بدید نیاز دارم...
کدی که قرار دادم کار میکنم روی دکمه آخر کلیک میکنه اما چطور باید بهش دستور بدم روی دکمه شماره 3 کلیک کنه؟

salehsam
پنج شنبه 24 مرداد 1392, 20:45 عصر
دوست من
آدرس سایت یا سورس کامل صفحه وبتو بذار اگه بتونیم کمکت می کنیم