نمایش نتایج 1 تا 14 از 14

نام تاپیک: بدست آوردن یک ID

  1. #1

    بدست آوردن یک ID

    سلام وقت بخیر دوستان.معمولا شما با کد زیر میتونید چیزی رو که میخواید درون یک تکس باکس در صفحه وب قرار بدین اما مشکلی که من بهش برخوردم این هست که تکست باکس درون یک کلاس قرار گرفته و من ID اون تکس باکس رو نمیدونم و تنها چیزی که دارم اندکس و کلاس اون تکست باکس هست.چجوری میتونم ID اون تکست باکس ها رو بدست بیارم.ممنون میشم راهنمایی کنید




    Me.WebBrowser1.Document.GetElementById("nam_ID").I nnerText = "TEXT"




  2. #2

    نقل قول: بدست آوردن یک ID

    نقل قول نوشته شده توسط hamidrezax1 مشاهده تاپیک
    سلام وقت بخیر دوستان.معمولا شما با کد زیر میتونید چیزی رو که میخواید درون یک تکس باکس در صفحه وب قرار بدین اما مشکلی که من بهش برخوردم این هست که تکست باکس درون یک کلاس قرار گرفته و من ID اون تکس باکس رو نمیدونم و تنها چیزی که دارم اندکس و کلاس اون تکست باکس هست.چجوری میتونم ID اون تکست باکس ها رو بدست بیارم.ممنون میشم راهنمایی کنید




    Me.WebBrowser1.Document.GetElementById("nam_ID").I nnerText = "TEXT"




    Public Shared Function GetElementsByClass (root As HtmlElement, className As String, Optional tagName As String = Nothing) As HtmlElement()
    Dim items = New List(Of HtmlElement)
    If String.IsNullOrEmpty (tagName) Then
    For Each item As HtmlElement In root.All
    If item.GetAttribute ("className") = className Then items.Add(item)
    Next
    Else
    For Each item As HtmlElement In root.GetElementsByTagName (tagName)
    If item.GetAttribute ("className") = className Then items.Add(item)
    Next
    End If
    Return items.ToArray()
    End Function


    مثلا :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim items = GetElementsByClass (Me.WebBrowser1. Document.Body, "YourClassName")
    For Each item In items
    item.InnerText = "TEXT"
    Next
    End Sub

    یا اگر دنبال فقط تگ خاصی مثلا تگ های <input> هستید :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim items = GetElementsByClass (Me.WebBrowser1. Document.Body, "YourClassName", "input")
    For Each item In items
    item.InnerText = "TEXT"
    Next
    End Sub

  3. #3

    نقل قول: بدست آوردن یک ID

    دوست عزیز ممنون از پاسخگویتون.متاسفانه من نتونستم به اون چیزی که میخوام برسم.من میخوام داخل چند تکست باکس چند متن وارد کنم و در نهایت یک کلیک رو کلیک کنم.تمام این تکست باکس ها درون یک کلاس هستش و ID ندارن.برای مثال خدمتتون همین سایت رو ارسال میکنم تا قشنگ منظورم رو برسونم. الان کلاسی که این باتن داره رو لطفا دقت کنید.من چجوری میتونم ID بدست بیارم و روش کلیک کنم
    این هم کلاس مربوطه
    w3-button w3-bar-item w3-hover-white w3-hover-text-green
    آدرس سایت

    210.jpg

  4. #4

    نقل قول: بدست آوردن یک ID

    نقل قول نوشته شده توسط hamidrezax1 مشاهده تاپیک
    دوست عزیز ممنون از پاسخگویتون.متاسفانه من نتونستم به اون چیزی که میخوام برسم.من میخوام داخل چند تکست باکس چند متن وارد کنم و در نهایت یک کلیک رو کلیک کنم.تمام این تکست باکس ها درون یک کلاس هستش و ID ندارن.برای مثال خدمتتون همین سایت رو ارسال میکنم تا قشنگ منظورم رو برسونم. الان کلاسی که این باتن داره رو لطفا دقت کنید.من چجوری میتونم ID بدست بیارم و روش کلیک کنم
    این هم کلاس مربوطه
    w3-button w3-bar-item w3-hover-white w3-hover-text-green
    نمونه کد که براتون نوشتم.


    Me.WebBrowser1.ScriptErrorsSuppressed = True
    Me.WebBrowser1.Navigate("https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_document_getelementsby classname")



    Dim items = GetElementsByClass (Me.WebBrowser1. Document.Body, "w3-button w3-bar-item w3-hover-white w3-hover-text-green", "button")
    For Each item In items
    item.InnerText = "Hello"
    item.InvokeMember("Click")
    Next

  5. #5

    نقل قول: بدست آوردن یک ID

    ممنونم دوست گرامی ببخشید که باز هم سوال میکنم آیا امکان این هست که متن تگ های پاین رو هم بتونم تغیر بدم.ممنونم از وقتی که میذارید

    <div class="example">First div element with class="example".</div>

  6. #6

    نقل قول: بدست آوردن یک ID

    نقل قول نوشته شده توسط hamidrezax1 مشاهده تاپیک
    ممنونم دوست گرامی ببخشید که باز هم سوال میکنم آیا امکان این هست که متن تگ های پاین رو هم بتونم تغیر بدم.ممنونم از وقتی که میذارید

    <div class="example">First div element with class="example".</div>
    اینجا className مقدار "example" داره و tagName مقدار "div"، یعنی GetElementsByClass (Me.WebBrowser1. Document.Body, "example", "div") و در آیتم هایی که پیدا می کنه InnerText رو تغییر می دهید.

    Dim items = GetElementsByClass (Me.WebBrowser1. Document.Body, "example", "div")
    For Each item In items
    item.InnerText = "Your text"
    Next

  7. #7

    نقل قول: بدست آوردن یک ID

    دقیقا مشکل من اینجاست که انگار این کلاس رو نمیشناسه و بدون تغیر از حلقه خارج میشه.ممنون میشم راهنمایی بفرمایید

  8. #8

    نقل قول: بدست آوردن یک ID

    نقل قول نوشته شده توسط hamidrezax1 مشاهده تاپیک
    دقیقا مشکل من اینجاست که انگار این کلاس رو نمیشناسه و بدون تغیر از حلقه خارج میشه.ممنون میشم راهنمایی بفرمایید
    وقتی نمیدونم ورودی چیه طبعا مشکل خروجی رو نمیتونم تشخیص بدهم و نظری در موردش ندارم.

    GetElementsByClassSample.zip

  9. #9

    نقل قول: بدست آوردن یک ID

    ممنونم بزرگوار از وقتی که برای من گذاشتین.سپاسگذارم

  10. #10
    کاربر دائمی آواتار Hossis
    تاریخ عضویت
    آبان 1386
    محل زندگی
    بیرجند
    پست
    1,731

    نقل قول: بدست آوردن یک ID

    از جی جوئری استفاده کنین با این تابع ساده و راحت
    $('div.example').text('YourText');
    فقط کافیه که فایل jquery.js رو در هدر صفحه ضمیمه کنید.

  11. #11
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: بدست آوردن یک ID

    نقل قول نوشته شده توسط Hossis مشاهده تاپیک
    از جی جوئری استفاده کنین با این تابع ساده و راحت
    $('div.example').text('YourText');
    فقط کافیه که فایل jquery.js رو در هدر صفحه ضمیمه کنید.
    حتما دقت کردین که ایشون از کنترل web browser استفاده میکنه و صفحه هم مال خودشون نیست که به header اون دسترسی داشته باشن.
    روشی که شما پیشنهاد کردین نیازمند این هست که هم کد جاوااسکریپت به این صفحه تزریق بشه و هم کتابخانه jquery بهش معرفی بشه،
    که البته هر دو مشابه هم هستن و باید با متد createelement انجام بشه و تا اینجا مشکلی نیست.

    مشکل اینجاست که چون کنترل webbrowser روی داکیومنت مدل ie7 بنا شده، jquery به احتمال زیاد کار نخواهد کرد.

  12. #12
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: بدست آوردن یک ID

    البته اگر بجای webbrowser از کنترل جدید webview2 ،که روی مرورگر edge بنا شده، استفاده بشه خیلی بهتره ولی اشکال این هست که کار با اون به راحتی webbrowser نیست و حتی اگر مرورگر edge هم نصب باشه باز باید این کنترل هم جداگانه نصب بشه.

  13. #13
    کاربر دائمی آواتار Hossis
    تاریخ عضویت
    آبان 1386
    محل زندگی
    بیرجند
    پست
    1,731

    نقل قول: بدست آوردن یک ID

    از کجا میشه این کنترل رو نصب کرد؟؟

  14. #14
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: بدست آوردن یک ID

    نصبش کاری نداره، کافی هست از طریق Nuget manager به پروژه تون اضافه کنین (webview2 رو جستجو کنین).

    ولی تا جایی که یادمه لازم بود قبلش runtime اون رو هم نصب کنیم:
    https://developer.microsoft.com/en-u...edge/webview2/

    و در toolbox به کنترل دسترسی دارین.

    ولی همونجور که گفتم کارکردن باهاش سخته چون به dom دسترسی ندارین (واقعا نمیدونم چرا!)

    تو گیت هاب یک پروژه هست (webview2.dom) که برای کار با اون باید #C بلد باشین.

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 09:01 صبح
  2. پاسخ: 2
    آخرین پست: جمعه 31 مرداد 1393, 10:12 صبح
  3. سوال: ساخت چند یوزر پس برای هاست و محدود کردن هاست برای نویسندگان هاست.
    نوشته شده توسط rezanic در بخش توسعه وب (Web Development)
    پاسخ: 0
    آخرین پست: شنبه 04 مرداد 1393, 21:07 عصر
  4. پاسخ: 7
    آخرین پست: سه شنبه 28 آذر 1391, 13:48 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •