एप्सीस्क्रिप्ट क्रोम टेक्स्टफील्ड क्लास को भरें


0
<div class="content" contenteditable="true" data-placeholder="Search Cases" data-maxlength="" data-div-placeholder-content="true">mytexthere</div>

मैं इस टेक्स्टफील्ड से टेक्स्ट को भरने का प्रबंधन नहीं करता

यहाँ मेरी स्क्रिप्ट है:

set textToSave to "Demo"
tell application "Google Chrome"
    tell tab 3 of window 1 to set theTextInfo to execute javascript "document.getElementsByClassName('search-field has-drop-down-menu component')[0].value=" & quoted form of textToSave
end tell

मैं AppleScript पर कोई त्रुटि नहीं है, लेकिन क्रोम पर कोई परिणाम नहीं है ...


1
ऐसा नहीं है कि यह मुद्दे को हल करेगा, हालांकि में tell application "Google Chrome" खंड , `& amp; "" के अंत में tell tab 3 ... की लाइन कोड सर्वर बिल्कुल कोई उद्देश्य नहीं है क्योंकि आप सचमुच कुछ भी नहीं जोड़ रहे हैं "" के अंत तक आदेश ! यह वास्तव में होना चाहिए: `& amp; "," `
user3439894

हां, मैंने इसे एक स्निपेट से लिया है, मुझे वास्तव में यह भी याद नहीं है कि मेरे पास ऐसा क्यों है, कोई मतलब नहीं है
Kevin

जवाबों:


1

इसी तरह अपने प्रश्न के साथ यहाँ मुद्दा यह है कि आप एक HTML तत्व को संदर्भ देने की कोशिश कर रहे हैं class नाम जो मौजूद नहीं है।

आपके द्वारा प्रदत्त HTML स्निपेट में एकल शामिल है <div> तत्व, जिसका class विशेषता का मूल्य है "content"। आपका जावास्क्रिप्ट उपयोग करता है getElementsByClassName() तर्क के साथ विधि 'search-field has-drop-down-menu component', जो लगता है कि कहीं से आया है।

इसलिए, के बारे में संक्षेप में समझाने के लिए getElementsByClassName() विधि, इसका उपयोग उन सभी तत्वों के लिए HTML तत्वों के संग्रह के भीतर खोज करने के लिए किया जाता है जिनके पास ए class तर्क के रूप में आपके द्वारा निर्दिष्ट मूल्य के साथ विशेषता। उदाहरण के लिए, getElementsByClassName('foo') मैच होगा <div class="foo">...</div>, तथा <a class="foo bar">...</a>, लेकिन यह होगा नहीं मैच <p class="foobar" id="foo" name="foo">...</p>

बदलने के लिए mytexthere के अंदर <div> तत्व, आप इस विधि का उपयोग तर्क के साथ कर सकते हैं "content" (वर्ग का नाम <div> तत्व); यदि विधि एक से अधिक आइटम लौटाता है तो सही इंडेक्स नंबर की पहचान करें; फिर सेट करें textContent वांछित मूल्य के लिए संपत्ति:

    document.getElementsByClassName('content')[2].textContent='...';

कहा पे [2] द्वारा लौटाए गए तत्वों की सूची से सही सूचकांक संख्या में बदलने की आवश्यकता होगी getElementsByClassName('content')

ऐसी अन्य जावास्क्रिप्ट विधियाँ हैं जिनका आप उपयोग कर सकते हैं, जैसे कि querySelector(), जो उपयोगी होने के लिए — आपको पढ़ने की आवश्यकता होगी CSS चयनकर्ता । लेकिन, जब आप इनसे परिचित हो जाते हैं, तो आप कुछ बहुत ही शक्तिशाली तत्व क्वेरी कर सकते हैं।


धन्यवाद, पूरी तरह से काम करते हैं, क्वेरीशेल्टर () पर गहराई से विचार करेंगे, युक्तियों के लिए धन्यवाद।
Kevin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.