PDA

View Full Version : کار با کلیک کردن WebBrowser1



aleas2
جمعه 30 تیر 1391, 13:53 عصر
دوستان با WebBrowser1 چطور میتونم رو یه command تو سایت کلیک کنم کدش اینه


<button type="submit" value="کلیک کنید"><div class="button-container"><div class="button-position"><div class="btl"><div class="btr"><div class="btc"></div></div></div><div class="bml"><div class="bmr"><div class="bmc"></div></div></div><div class="bbl"><div class="bbr"><div class="bbc"></div></div></div></div><div class="button-contents">کلیک کنید</div></div></button> </div>
</form>
</div>

محسن واژدی
جمعه 30 تیر 1391, 15:48 عصر
سلام علیکم
البته تاپیک های زیادی در اینباره قبلا ایجاد شده و به نتایج مفیدی رسیده است

اگر submit نام داشته باشد میتوانیم با کدی مشابه زیر بر روی آن کلیک کنیم:
WebBrowser1.Document.All("btnSubmit").Click

و اگر دکمه نامی نداشته باشد، بمنظور کلیک بر روی آن index دکمه را در کدی مشابه زیر جایگزین می کنیم:
WebBrowser1.Document.Forms(0).elements(6).Click

و یا با کدی مشابه زیر فرم را ارسال کنیم:
WebBrowser1.Document.Forms(0).submit


موفق باشید

aleas2
دوشنبه 02 مرداد 1391, 14:35 عصر
داداش اندیس فرم که جای 0 باید قرار بدم تو کد سایت باید دنبال چه کدی باید بگردم پیدا کنم؟

WebBrowser1.Document.Forms(0).submit
اگر تو Forms چندتا CHECKBOX باشه من با کد نویسی تیکشونو زده باشم با WebBrowser1 بدون دونستن Forms(0) مربوطه تشخیص داد این CHECKBOX ها تو کدوم Forms(0) هسته که اون Forms(0) ارسال کنه؟

محسن واژدی
دوشنبه 02 مرداد 1391, 15:03 عصر
اگر تو Forms چندتا CHECKBOX باشه من با کد نویسی تیکشونو زده باشم با WebBrowser1 بدون دونستن Forms(0) مربوطه تشخیص داد این CHECKBOX ها تو کدوم Forms(0) هسته که اون Forms(0) ارسال کنه؟

اگر بر روی صفحه بیشتر از یک فرم قرار دارد، با اضافه کردن indexهای Forms(0) میتوانیم index فرمی که check-boxمورد نظر در آن قرار دارد را بدست آوریم، ولی اگر بیشتر از یک فرم وجود ندارد index آن صفر هست

aleas2
دوشنبه 02 مرداد 1391, 15:08 عصر
من check-box به این صورت true میکنم

WebBrowser1.Document.All("chek1").Click
حالا از کجا بفهمم این check-box رو کدوم فرم قرار داره و اندیس فرم چی؟چون بیش از یک فرم قرار داره هر دفعه تعداد فرم ها ممکنه تغییر کنه

محسن واژدی
دوشنبه 02 مرداد 1391, 16:11 عصر
من check-box به این صورت true میکنم

WebBrowser1.Document.All("chek1").Click
حالا از کجا بفهمم این check-box رو کدوم فرم قرار داره و اندیس فرم چی؟چون بیش از یک فرم قرار داره هر دفعه تعداد فرم ها ممکنه تغییر کنه

در اینصورت میتوانیم با دستوری مشابه زیر فرم را ارسال کنیم:
WebBrowser1.Document.All("chek1").Form.submit

موفق باشید

aleas2
دوشنبه 02 مرداد 1391, 16:24 عصر
ممنون ولی روشی نیست اون index هم بشه فهمید؟چون لازم دارم با استفاده از اون checkbox بفهمم index فرم چی؟

محسن واژدی
دوشنبه 02 مرداد 1391, 18:38 عصر
تابع زیر را در ماژول فرم قرار بدین:
Private Function GetObjectFormIndex(sObjName$) As Integer
Dim i
Dim oPForm
With WebBrowser1.Document
Set oPForm = .All(CStr(sObjName$)).Form
For i = 0 To .Forms.length
If .Forms(i) Is oPForm Then GetObjectFormIndex = i: Exit Function
Next
End With
End Function

به عنوان مثال، برای Form-Index عنصر chek1:
Private Sub Command1_Click()
MsgBox "Parent form index: " & GetObjectFormIndex("chek1"), vbInformation
End Sub

موفق باشید