السلام عليكم ورحمه الله وبركاته
اولا احب اشكر المهندس ابو روضه علي انه وجهني نحو طريق الselenium
ثانيا انا مش عارف اكتب الكوده
بستخدم من خلال الselenium انه يدخل الي الرابط ده
https://web.whatsapp.com/send?phone=012865455125
من المفترض ان تظهر هذه الرساله (ان رقم الهاتف الذي تمت مشاركتة عبر الرابط غير صحيح)
انا عايز اكتب كود بحيث اذا ظهرت هذه الرساله تظهر مسدج بوكس تقول خطاء واذا لم تظهر هذه الرساله تظهر مسدج بوكس تقول صحيح
استخدمت هذا الكود بحيث ان ابحث عن الكلاس واستخدمه ولكن عده محاولات فاشله
كود :
Dim driver As IWebDriver
driver = New ChromeDriver
driver.Navigate().GoToUrl("https://web.whatsapp.com/send?phone=012865455125")
Dim element As IWebDriver = driver.FindElement(By.ClassName("إن رقم الهاتف الذي تمت مشاركته عبر الرابط غير صحيح."))
انت بتتعامل مع اسم الكلاس وليس نص العرض
كلاس _2Vo52
واللي هو في خاص بالـ div اللي تنعرض فيه الرسالة
جرب استبدل السطر بالتالي
كود :
Dim element As IWebDriver = driver.FindElement(By.ClassName("_2Vo52"))
(03-12-19, 11:41 PM)محمد كريّم كتب : [ -> ]انت بتتعامل مع اسم الكلاس وليس نص العرض
كلاس _2Vo52
واللي هو في خاص بالـ div اللي تنعرض فيه الرسالة
جرب استبدل السطر بالتالي
كود :
Dim element As IWebDriver = driver.FindElement(By.ClassName("_2Vo52"))
طبعا كل الشكر للمتميز محمد كريم
ولكن الفكره مش هنا الفكره كيف اكتب دله if بحيث اذا ظهرت هذه الرساله تظهر مسدج بوكس تقول غير صحيح واذا لم تظهر هذه الرساله تظهر مسدج بوكس تقول صحيح
انت جبت الكائن اللي سميته element
فما عليك الا تتعامل مع خصائصه زي اي كائن ثاني
اعتبره تكست بوكس يا أخي
النص بيكون في
element.Text
اعمل شرط if على هذه القيمة
كود :
if(element.Text.equal("النص المطلوب البحث عنده"))
كمل زي شرط عادي
أرجو اني ما اخطأت في شيء
ملاحظة / انا ما بحبش فيجوال بيسك ومقرر مش حتعلم اكتب صيغتها ولكن احيانا باضطر فقط للرد على اسئلة الاعضاء
(04-12-19, 12:36 AM)محمد كريّم كتب : [ -> ]انت جبت الكائن اللي سميته element
فما عليك الا تتعامل مع خصائصه زي اي كائن ثاني
اعتبره تكست بوكس يا أخي 
النص بيكون في
element.Text
اعمل شرط if على هذه القيمة
كود :
if(element.Text.equal("النص المطلوب البحث عنده"))
كمل زي شرط عادي
أرجو اني ما اخطأت في شيء
ملاحظة / انا ما بحبش فيجوال بيسك ومقرر مش حتعلم اكتب صيغتها ولكن احيانا باضطر فقط للرد على اسئلة الاعضاء
للأسف مش هينفع جربت والله العظيم يا متميز وبرضو دون جدوي
اعتذر منك
كانت مجرد اجتهاد
ممكن انت مش بتوصل أصلا للـ div المطلوب كونه موجود داخل كائنات اخرى متشعبة او لكون الكلاس مستخدم في اكثر من مكان
جرب حظك مع By.cssSelector أو By.XPath
فهي حتشخليك تطلب الـ div بتفاصيل أكثر بحيث يجب هو نفسه
شرح جميل بالفيديو للبحث بالمسار XPAth
https://www.youtube.com/watch?v=tV7ziQCIZAg
(04-12-19, 12:52 AM)محمد كريّم كتب : [ -> ]اعتذر منك
كانت مجرد اجتهاد
ممكن انت مش بتوصل أصلا للـ div المطلوب كونه موجود داخل كائنات اخرى متشعبة او لكون الكلاس مستخدم في اكثر من مكان
جرب حظك مع By.cssSelector أو By.XPath
فهي حتشخليك تطلب الـ div بتفاصيل أكثر بحيث يجب هو نفسه
شرح جميل بالفيديو للبحث بالمسار XPAth
https://www.youtube.com/watch?v=tV7ziQCIZAg
لا طبعا العفو انا اللي بهتذر طبعا
لكن المشكله في الكلاس المشكله في بناء جمله ال if
عفواً اخى الكريم والشكر لله وحده....
أولاً ليس لدى واتساب لانى دخلت على الرابط فدخلنى على الصفحة الرئيسية مباشرة.
لكن عموما تكتب الكود هكذا مع تغير اسم الكلاس طبعا والتاج نيم
PHP كود :
Dim links = driver.FindElements(By.TagName("button"))
For Each item In links
If item.GetAttribute("className") = ("tweet-action EdgeButton EdgeButton--primary js-tweet-btn") Then
MsgBox(item.Text)
End If
Next item
جرب وإن شاء الله ينفع معك
(04-12-19, 01:24 AM)ابو روضة كتب : [ -> ]عفواً اخى الكريم والشكر لله وحده....
أولاً ليس لدى واتساب لانى دخلت على الرابط فدخلنى على الصفحة الرئيسية مباشرة.
لكن عموما تكتب الكود هكذا مع تغير اسم الكلاس طبعا والتاج نيم
PHP كود :
Dim links = driver.FindElements(By.TagName("button"))
For Each item In links
If item.GetAttribute("className") = ("tweet-action EdgeButton EdgeButton--primary js-tweet-btn") Then
MsgBox(item.Text)
End If
Next item
جرب وإن شاء الله ينفع معك
ربنا ما يحرمنا منك يا قائد وطبعا الشكر لله ثم لك يا كبيرنا
انا جربت و للأسف ماظبطش معايا الفكره كلها انا كنت عاوز اطور المشروع الخاص بالواتس اب اللي نزلته في المنتدي بحيث ان ممكن اضيف 100 رقم ويتم فلترتهم اللي فيهم واتس اب واللي مالهوش واتس اب من خلال هذه الرساله ولكن كما علمتنا يا قائد اشتغل في شئ اخري وهنلاقي الحل قدام عنينا
إقتباس :انا جربت و للأسف ماظبطش معايا الفكره كلها انا كنت عاوز اطور المشروع الخاص بالواتس اب اللي نزلته في المنتدي بحيث ان ممكن اضيف 100 رقم ويتم فلترتهم اللي فيهم واتس اب واللي مالهوش واتس اب من خلال هذه الرساله ولكن كما علمتنا يا قائد اشتغل في شئ اخري وهنلاقي الحل قدام عنينا
تسلم اخى ربنا يكرمك...
المشكلة أن سورس الصفحة ليس امامى كى أجد ما تريده...
يعنى أتريد جلب اشياء من الصفحة ؟
أم تريد الضغط على شيئ داخل الصفحة ؟
أياً كان ما تريده فيجب أن تكون الصفحة أمامى كى أحاول معها صح أم كلامى خطأ ؟