اذهب إلى المحتوى
  • 0

كيفية ارسال بيانات ( التاريخ والساعه ) بواسطة البايثون

Kamel Gamal

السؤال

السلام عليكم ,,,,
انا بدات اتعلم  البايثون من اسبوع وكنت شغال على مشروع وتقريبا خلصته كله الا اخر خطوه , للاسف وقفت عندها ومش لاقى اى حل 
الموضوع عباره عن انى عايز ارسل بيانات مكونه من ( تاريخ - و وقت ) فى حقل ما فى نموذج جوجل زى ماهو واضح كده فى الصورتين
بس للاسف البيانات مش عايزه تروح نهائى ,, وبصراحه مش عارف اذا كنت استخدمت الداله الصحيحه ولا لا ( انا لسا بتعلم)
فياريت حد يساعدنى ويقولى ايه الداله او السطر اللى اقدر بيها ابعت البيانات ديه للحقل
دا لينك الفورم علشان لو حد عايز يدخل يجرب بنفسه ,,
 https://docs.google.com/forms/d/1OrgKUAU_f7hrZM4B_aUu5kvMVTT3C7NJZNKnkt4N8v4/edit   
بس بعد ماتدخل لازم تدوس على علامة الAdditions وبعد كده Form Scheduler وبعد كده Configure schedules علشان يظهرلك جدول الواقت المراد تعديله 
وشكرا مقدما
  

dcdcd.png

sdasda.png

dfdfdf.png

تم التعديل في بواسطة Kamel Gamal
لتصحيح كلمه
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

بالفعل السبب هو أن الelement المطلوب موجود بداخل iframe، والذي بدوره موجود بداخل iframe آخر، والذي بدوره بداخل iframe آخر. لذلك يجب عمل switching ثلاث مرات.

يمكن عمل التالي كالآتي:

#اختصار الاسم الطويل للفانكشن
q = driver.find_elements_by_css_selector
#إيجاد أول فريم وعمل سويتش إليه
frames = q('iframe')[1]
a = driver.switch_to_frame(q('iframe')[1])
inside_frame = q('*')
#إيجاالفريم بداخل الفريم وعمل سويتش إليه
inception_frame = inside_frame[-2]
driver.switch_to_frame(inception_frame)
#إيجاالفريم بداخل الفريم بداخل الفريم وعمل سويتش إليه
double_inception_frame = q("*")[-2]
driver.switch_to_frame(double_inception_frame)

بعد ذلك لإضافة التاريخ إلى الinput:

from selenium.webdriver.common.keys import Keys
#الآن يمكننا الوصول للعنصر لأننا بداخل الفريم الحاوي له
inp = q('#stop-datetime')[0]
our_time = '11/23/2021 11:14 AM'
inp.send_keys('11')
inp.send_keys('23')
inp.send_keys('2021')
inp.send_keys(Keys.TAB)
inp.send_keys('11')
inp.send_keys('14')
inp.send_keys('AM')

بعد ذلك إن أردت العودة إلى الصفحة خارج جميع الframes:

driver.switch_to_default_content()

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السبب في ذلك هو أن هذا ال input يقع في داخل frame "مربع آخر و ليس الصفحة نفسها".

لذلك يجب الانتقال إليه أولًا:

#switch it first

self.driver.switch_to.frame(driver.find_element_by_id('')) #المشار إليه في الصورة  frame  الخاص بال id ال 
self.driver.find_element_by_id('stop-datetime').send_keys('8/31/2020 11:14 AM')
 

5f4cb62b51e43_Annotation2020-08-31102830.thumb.jpg.e4a87f631d67e27757943f07427969a2.jpg

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...