تمت الإجابة تنفيذ الكود حينما لا يجد له اسم او Attribute

تم تحميل الصفحة في 0,7541640 ثانية
تنفيذ الكود حينما لا يجد له اسم او Attribute

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
السلام عليكم ورحمة الله وبركاته.

أريد تنفيذ كود حينما يتم الانتهاء من الضغط على العنصر الذى يمتلك Attribute
يعنى يظل يضغط على العنصر وحينما لا يجد ال Attribute تبعه يتوقف وينفذ الكود الذى يلى كلمة Else

وهذا الكود يعمل لكن انا اللى بفضل اضغط الى ان يختفى ال Attribute

C#:
Dim input As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")

        For Each item As HtmlElement In input
            If item.GetAttribute("name") = ("btnLoadMore") Then
                item.InvokeMember("Click")
            Else
اريد الكود المراد تنفيذه يكون هنا
            End If

        Next item
 
إنضم
25 سبتمبر 2015
المشاركات
787
الإعجابات
934
النقاط
93
الإقامة
Algeria
While True
Dim input As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")

For Each item As HtmlElement In input
If item.GetAttribute("name") = ("btnLoadMore") Then
item.InvokeMember("Click")
Else
Exit While
End If

Next item

End While
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
While True
Dim input As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")

For Each item As HtmlElement In input
If item.GetAttribute("name") = ("btnLoadMore") Then
item.InvokeMember("Click")
Else
Exit While
End If

Next item

End While
جزاك الله كل الخير استاذ لكن لا يتم فعل أى شيئ أخى وكأنى لم أضع شيئ
 
إنضم
25 سبتمبر 2015
المشاركات
787
الإعجابات
934
النقاط
93
الإقامة
Algeria
جزاك الله كل الخير استاذ لكن لا يتم فعل أى شيئ أخى وكأنى لم أضع شيئ
عليك الضغط مرة واحدة ...
اذا لم يحصل شيئ قم بعمل Debug او راسلني و ساقوم بالمساعدة
 
الإعجابات: QS7S

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
عليك الضغط مرة واحدة ...
اذا لم يحصل شيئ قم بعمل Debug او راسلني و ساقوم بالمساعدة
أنظر أخى أنا اريد يظل يضغط على الزر مادام اسمه متواجد وهنا اسمه btnLoadMore
واذا لم يجده يضع الكود اللى بعد كلمة Else لكن كود حضرتك لا يفعل شيئا وحينما انهيت الكود وحذفت كلمة Exit While
توقف البرنامج تماما
 

QS7S

مُميّز نُقطة لُغات البرمجة للعام 2019
rankrank
إنضم
28 يناير 2019
المشاركات
292
الإعجابات
357
النقاط
63
كود:
        Dim input As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")
        Dim Counter As Integer = 0
        For Each item As HtmlElement In input
            Counter += 1
            If item.GetAttribute("name") = ("btnLoadMore") Then
                item.InvokeMember("Click")
                'GoTo jump ' قفزة  داخل Else
                Exit For ' اخرج من الحلقة
            Else
                'jump:
                'MsgBox("jump")
                If Counter >= input.Count Then
                    MsgBox("اخر دوران")
                End If
            End If
        Next item
طلبك شتت تفكيري :)
 
الإعجابات: CorrM

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
كود:
        Dim input As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")
        Dim Counter As Integer = 0
        For Each item As HtmlElement In input
            Counter += 1
            If item.GetAttribute("name") = ("btnLoadMore") Then
                item.InvokeMember("Click")
                'GoTo jump ' قفزة  داخل Else
                Exit For ' اخرج من الحلقة
            Else
                'jump:
                'MsgBox("jump")
                If Counter >= input.Count Then
                    MsgBox("اخر دوران")
                End If
            End If
        Next item
طلبك شتت تفكيري :)
شتت تفكيرك هل لآنه غير مهوم أم لآنه صعب تنفيذه ؟
عموما بارك الله فيكم وجزاكم كل الخير.
 

QS7S

مُميّز نُقطة لُغات البرمجة للعام 2019
rankrank
إنضم
28 يناير 2019
المشاركات
292
الإعجابات
357
النقاط
63
شتت تفكيرك هل لآنه غير مهوم أم لآنه صعب تنفيذه ؟
عموما بارك الله فيكم وجزاكم كل الخير.

مافي شي مستحيل في عالم البرمجة
بس انت شكلك مفوت عليك اساسيات

اذا العنصر غير موجود مراح يدخل ال For
كيف بتنفذ Else داخل ال For ؟

واذا Attribute غير موجود راح يتم تنفيذ Else تلقائي !!
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
مافي شي مستحيل في عالم البرمجة
بس انت شكلك مفوت عليك اساسيات

اذا العنصر غير موجود مراح يدخل ال For
كيف بتنفذ Else داخل ال For ؟

واذا Attribute غير موجود راح يتم تنفيذ Else تلقائي !!
بالفعل قد يفوت علىّ وعليك وعلى الجميع أشياء تافهه لا تُذكر...
لكن قد أفعل أشياء لم تخطر على بالك ولا على بال عتاولة من المبرمجين...

لكن المميز دائما إذا رأى من أحدهم نقص معلومات يفهمه ويذكره ويعلمه لا يُأنبه.
 
إنضم
25 سبتمبر 2015
المشاركات
787
الإعجابات
934
النقاط
93
الإقامة
Algeria
بالفعل قد يفوت علىّ وعليك وعلى الجميع أشياء تافهه لا تُذكر...
لكن قد أفعل أشياء لم تخطر على بالك ولا على بال عتاولة من المبرمجين...

لكن المميز دائما إذا رأى من أحدهم نقص معلومات يفهمه ويذكره ويعلمه لا يُأنبه.
اخي بكل بساطة يستحيل مساعدتك
لا يمكن فقط برمجة شيئ لا يمكن تجربته و اعطاؤه لك ثم تقول لا يعمل
كمبرمج عندما لا يعمل كود اقوم بتجربة كل سطر على حدة
و طبعا لا يمكن هذا لعدم توفر الموقع
لذا لا تلم الاخرين على نقص المعلومات
 

CorrM

Just a Programmer
rankrankrankrankrankrank
إنضم
27 ديسمبر 2013
المشاركات
3,675
الإعجابات
7,016
النقاط
113
العمر
21
الإقامة
Egypt
مرحبا اخى ابو روضه,
مبدئيا كلام الاخوه بالاعلى صحيح وكلامك ايضا صحيح
كما قلت يمكن ان بفهو اى انسان عن شئ سواء كبير او صغير
لاكن فى عالم البرمجه يوجد Debugging لهذه الامور لتعرف اين اخطأت او اين قد نسيت

بالنسبه لمشكلتك [ طبعا انا لم اجررب ]
يوجد حالتين لكودك
الاول انه لن يتم تنفيذ الشرط الخاص بك نهائى [ Else ]
الثانى انه سيتم نفيذه بعدد مرات تواجد [ Button ] فى الصفحه - 1

تحليل المشكله
1- يمكن عدم الدخول لـ لحلقه التكراريه نهائى كما اشرت فى الحاله الاولى وهنا بالطبع لن يتم نفيذ الشرط نهائى
[ لانه لن يصل اليه فى الاساس ]
2- يمكن ان يكون هنا عدد من الـ Button لذالك سيتم نفيذ [ Else ] دائما ما عدا اذا تواجد الشرط تبع اسم الـ Button
ونا يوجد مشكله اخرى انه سيكمل عمله حتى بعد الضغط على الـ Button المراده اى انه بعد الضغط سيكمل باقى الحلقه التكراريه
لذالك يجب الخروج منها بعد الضغط

الحل
كل ما عليك فعله هو وضع الشرط خارج الحلقه التكراريه
و الاستعانه بمتغير من نوع Bool لحل هذه المشكله
كـ مثال بـ C# اعتقد سيكون جيد لفهم الاليه

C#:
bool found = false;
for (int i = 0; i <= 50; i++)
{
    if (i == 30)
    {
        found = true;
        break; // Exit For
    }
}

// Check if found
if (found)
{
    // Do AnyThing
}
اعتقد الامر اصبح اسهل
و حاول الاعتماد على الـ Debugging سيسهل الحياااه كثيرا عليك
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
مرحبا اخى ابو روضه,
مبدئيا كلام الاخوه بالاعلى صحيح وكلامك ايضا صحيح
كما قلت يمكن ان بفهو اى انسان عن شئ سواء كبير او صغير
لاكن فى عالم البرمجه يوجد Debugging لهذه الامور لتعرف اين اخطأت او اين قد نسيت

بالنسبه لمشكلتك [ طبعا انا لم اجررب ]
يوجد حالتين لكودك
الاول انه لن يتم تنفيذ الشرط الخاص بك نهائى [ Else ]
الثانى انه سيتم نفيذه بعدد مرات تواجد [ Button ] فى الصفحه - 1

تحليل المشكله
1- يمكن عدم الدخول لـ لحلقه التكراريه نهائى كما اشرت فى الحاله الاولى وهنا بالطبع لن يتم نفيذ الشرط نهائى
[ لانه لن يصل اليه فى الاساس ]
2- يمكن ان يكون هنا عدد من الـ Button لذالك سيتم نفيذ [ Else ] دائما ما عدا اذا تواجد الشرط تبع اسم الـ Button
ونا يوجد مشكله اخرى انه سيكمل عمله حتى بعد الضغط على الـ Button المراده اى انه بعد الضغط سيكمل باقى الحلقه التكراريه
لذالك يجب الخروج منها بعد الضغط

الحل
كل ما عليك فعله هو وضع الشرط خارج الحلقه التكراريه
و الاستعانه بمتغير من نوع Bool لحل هذه المشكله
كـ مثال بـ C# اعتقد سيكون جيد لفهم الاليه

C#:
bool found = false;
for (int i = 0; i <= 50; i++)
{
    if (i == 30)
    {
        found = true;
        break; // Exit For
    }
}

// Check if found
if (found)
{
    // Do AnyThing
}
اعتقد الامر اصبح اسهل
و حاول الاعتماد على الـ Debugging سيسهل الحياااه كثيرا عليك

تسلملى يا اسلام ربنا يكرمك ويبارك بعمرك....
قليل جدا لما بطلب طلب هنا الآن فى البرمجة أقصد لآن هناك أمور أهم وأكبر منها تشغلنى
فطبيعى حينما يبتعد شخص عن شيئ كان يعمل فيه ينسى أقل الأشياء...
والله يا اسلام الويب براوزر هذا لا شيئ تقريباً يخفى عليه منه وكله بفضل الله ثم أنت
" لو تتذكر "
المشكلة هنا أن القليل جدا يفهمون هذا ويعتقدون أن من نسى شيئاً بسيطاُ مثل هذا لا يفهم شيئاً ويُقذفونه بالحجارة ويُأنبونه ويُشعروه بأنه لا شيئ وأنهم كل شيئ....
شكراً يا إسلام على التذكير اللطيف هذا وتم الحل الحمدلله.
 
الإعجابات: CorrM

CorrM

Just a Programmer
rankrankrankrankrankrank
إنضم
27 ديسمبر 2013
المشاركات
3,675
الإعجابات
7,016
النقاط
113
العمر
21
الإقامة
Egypt
تسلملى يا اسلام ربنا يكرمك ويبارك بعمرك....
قليل جدا لما بطلب طلب هنا الآن فى البرمجة أقصد لآن هناك أمور أهم وأكبر منها تشغلنى
فطبيعى حينما يبتعد شخص عن شيئ كان يعمل فيه ينسى أقل الأشياء...
والله يا اسلام الويب براوزر هذا لا شيئ تقريباً يخفى عليه منه وكله بفضل الله ثم أنت
" لو تتذكر "
المشكلة هنا أن القليل جدا يفهمون هذا ويعتقدون أن من نسى شيئاً بسيطاُ مثل هذا لا يفهم شيئاً ويُقذفونه بالحجارة ويُأنبونه ويُشعروه بأنه لا شيئ وأنهم كل شيئ....
شكراً يا إسلام على التذكير اللطيف هذا وتم الحل الحمدلله.
لم يقصد الاخوه شئ فـ الكل ينسى و الكل يخطئ
بالتوفيق اخى ابى روضه
اذا واجهتك مشكله القسم مفتوح للجميع سواء من ينسى او من لا يعلم :D
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
3,731
الإعجابات
4,231
النقاط
223
الإقامة
القاهرة
لم يقصد الاخوه شئ فـ الكل ينسى و الكل يخطئ
بالتوفيق اخى ابى روضه
اذا واجهتك مشكله القسم مفتوح للجميع سواء من ينسى او من لا يعلم :D
الشخص بمجرد أن يتذكر الشيئ بأسلوب لطيف مثل اسلوبك يُصحح الكود بكذا طريقة تساعدة.

كود:
 Dim input As HtmlElementCollection
        input = WebBrowser1.Document.GetElementsByTagName("button")
        Dim ii As Integer
        For Each item As HtmlElement In input
            If item.InnerText = ("المزيد") Then
                Do
                    item.InvokeMember("Click")
                    If item.Style = "Display: none" Or item.Style = "display: none;" Then
                        Exit Do
                    End If
                    Dim t As New Threading.Thread(AddressOf closeMsgbox)
                    t.Start(1) '
                    ii += 1
                    MsgBox("جارى جلب الصفحات ")
                Loop
            End If
        Next item
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل