javascript - تشغيل جافا سكريبت في السيلينيوم باستخدام بايثون




python selenium (4)

إذا انتقلت من iframe ، فقد تضيع في صفحتك ، وأفضل طريقة لتنفيذ بعض المسجِّل بدون مشكلة (مع selenimum / python / gecko):

# 1) Get back to the main body page
driver.switch_to.default_content()

# 2) Download jquery lib file to your current folder manually & set path here
with open('./_lib/jquery-3.3.1.min.js', 'r') as jquery_js: 
    # 3) Read the jquery from a file
    jquery = jquery_js.read() 
    # 4) Load jquery lib
    driver.execute_script(jquery)
    # 5) Execute your command 
    driver.execute_script('$("#myId").click()')

استمتع XD

أنا جديد تماما على السيلينيوم. أريد تنفيذ مقتطف javascript في التعليمة البرمجية التالية (كما هو موضح في التعليمات البرمجية) ، ولكن لا يمكنني القيام بذلك. الرجاء المساعدة.

from selenium import webdriver
import selenium
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time

patch = raw_input("Enter patch number\n")
rel = raw_input("Enter release\n")
plat = raw_input("Enter port\n")

browser = webdriver.Firefox()

browser.get("xxxxxxxxxxxxxxxxx")

pdtfamily = browser.find_element_by_id("prodFamilyID")
pdtfamily.send_keys("Database & Tools" + Keys.TAB)
time.sleep(5)

pdt = browser.find_element_by_id("productID")
pdt.send_keys("Intelligent Agent" + Keys.TAB)
time.sleep(5)

pdt1 = browser.find_element_by_id("patchCacheChkBxID")
pdt1.send_keys(Keys.SPACE)
time.sleep(5)

pdt7 =  browser.find_element_by_id("M__Idf")
pdt7.send_keys(plat)

pdt8 =  browser.find_element_by_id("M__Idg")
pdt8.send_keys("American English")

# Here I want to execute this javascript - "submitForm('patchCacheAdd',1,{'event':'ok'});return false"

browser.close()

إذا كنت تستخدم -

selenium.GetEval("submitForm('patchCacheAdd',1,{'event':'ok'});return false")

انها أخطاء كما -

AttributeError: 'module' object has no attribute 'GetEval'I 

جرّب browser.execute_script بدلاً من selenium.GetEval .

انظر هذه الإجابة على سبيل المثال.


استخدم execute_script ، إليك مثال python:

driver = webdriver.Firefox()

driver.get("http://.com/questions/7794087/running-javascript-in-selenium-using-python")
driver.execute_script("document.getElementsByClassName('comment-user')[0].click()")

نقلا عن w3schools :

التوجيه "استخدام صارم"

التوجيه "استخدام صارم" جديد في JavaScript 1.8.5 (ECMAScript الإصدار 5).

إنها ليست عبارة ، ولكنها تعبير حرفي ، يتم تجاهلها بواسطة إصدارات سابقة من JavaScript.

الغرض من "استخدام صارم" هو الإشارة إلى أنه يجب تنفيذ الكود في "الوضع المقيد".

مع الوضع المقيد ، لا يمكنك ، على سبيل المثال ، استخدام المتغيرات غير المعلن عنها.

لماذا وضع صارم؟

يجعل وضع Strict من الأسهل كتابة JavaScript "الآمن".

تغيير الوضع الصارم قبلت "بناء غير صحيح" إلى أخطاء حقيقية.

على سبيل المثال ، في JavaScript العادي ، يؤدي كتابة اسم متغير متغير إلى إنشاء متغير عالمي جديد. في الوضع المقيد ، سيؤدي هذا إلى حدوث خطأ ، مما يجعل من المستحيل إنشاء متغير عمومي عن طريق الخطأ.

في جافا سكريبت العادي ، لن يتلقى مطوّر البرامج أي ملاحظات متعلقة بالخطأ مع تعيين قيم للخصائص غير القابلة للكتابة.

في الوضع المقيد ، فإن أي تعيين إلى خاصية غير قابلة للكتابة ، أو خاصية getter-only ، أو خاصية غير موجودة ، أو متغير غير موجود ، أو كائن غير موجود ، سيؤدي إلى حدوث خطأ.

يرجى الرجوع إلى http://www.w3schools.com/js/js_strict.asp لمعرفة المزيد





javascript python selenium