मैं एक आइटम के आकार को बदलने के लिए एक सी # सेलेनियम स्क्रिप्ट लिखने की कोशिश कर रहा हूं: /index.php

मैं पहले फ्रेम पर स्विच करने का प्रयास करने के बाद भी आईफ्रेम पॉपअप में कुछ भी लक्षित करने में सक्षम नहीं हूं।

आईफ्रेम दिखाने के लिए मैंने आइटम 1 के त्वरित दृश्य का उपयोग करके क्लिक किया:

var element = 
driver.FindElement(By.XPath("//*[@id=\"homefeatured\"]/li[1]/div/div[1]/div/a[1]/img"));
Actions actions = new Actions(driver);
actions.MoveToElement(element);
actions.Click();
actions.Perform();

इसके बाद आईफ्रेम विंडो दिखाई दी लेकिन विंडो पर स्विच करने की कोशिश करने के बाद भी मुझे इसमें कुछ भी नहीं मिला:

फ्रेम 3 वह है जिसे फ़ायरफ़ॉक्स ide चुना गया है।

driver.SwitchTo().Frame(3);

डिफ़ॉल्ट का चयन करना और फिर विभिन्न फ़्रेमों का चयन करना।

driver.SwitchTo().DefaultContent(); 

फ्रेम नाम का उपयोग करने की कोशिश कर रहा है

driver.SwitchTo().Frame("fancybox-margin fancybox-lock");

फ्रेम आईडी की कोशिश कर रहा है 0,1,2,3

यह XPath, आईडी, नाम या किसी अन्य चीज़ से किसी भी तत्व को कभी नहीं ढूंढता है। मैं आकार बदलने के लिए ड्रॉप डाउन करने की कोशिश कर रहा हूं।

मैं जिस XPath की तलाश कर रहा हूं, भले ही मैंने कई अन्य उच्च स्तरों की कोशिश की है

//*[@id="group_1"]

किसी भी मदद की वास्तव में सराहना की मैं इतने लंबे समय से अटका हुआ हूं।

0
user10284890 1 सितंबर 2018, 11:49

2 जवाब

स्विच करने के लिए इसका उपयोग करें, यह काम करेगा, आईडी में अंत में कुछ संख्या होती है और यह भी बदलती रहती है।

driver.SwitchTo().Frame(By.Xpath("//iframe[starts-with(@id,'fancybox-frame')]"));
0
Rajagopalan 1 सितंबर 2018, 15:04
मदद करने के लिए धन्यवाद, यह दिखा रहा है कि यह OpenQA.Selenium.By को उपयोग करते समय एक इंट त्रुटि में परिवर्तित नहीं कर सकता है?
 – 
user10284890
1 सितंबर 2018, 15:17
कृपया सी # पर लिखने के तरीके पर कुछ शोध करें, मुझे सी # नहीं पता, मैं सेलेनियम रूबी बाइंडिंग (वाटीर) का उपयोग कर रहा हूं। मैंने जाँच की कि यह बहुत अच्छा काम करता है, मैंने एक उत्तर लिखने का फैसला किया क्योंकि मैं समस्या को समझ गया था।
 – 
Rajagopalan
1 सितंबर 2018, 15:28
क्षमा करें अगर मदद करने के लिए धन्यवाद व्यंग्यात्मक लग रहा था तो यह सहायता करने की कोशिश के लिए वास्तविक था।
 – 
user10284890
1 सितंबर 2018, 15:35
अरे कोई समस्या नहीं है, असल में मैं सी# नहीं जानता, इसलिए मैंने तुमसे कहा था। क्या आप रूबी को जानते हैं? यदि आप रूबी को जानते हैं तो आप रूबी सेलेनियम बाइंडिंग के शीर्ष पर बैठे WATIR का उपयोग कर सकते हैं, आपको वहां फ्रेम को स्विच करने की भी आवश्यकता नहीं है, WATIR स्वचालित रूप से सबकुछ का ख्याल रखता है। क्या आप एक कोशिश करना चाहते हैं?
 – 
Rajagopalan
1 सितंबर 2018, 18:14

अंत में इस मुद्दे को हल करने के लिए प्रबंधित, एक और आईफ्रेम आगे नीचे था इसलिए यह असफल हो रहा था क्योंकि यह आईफ्रेम 3 में नेविगेट करने के बाद आईफ्रेम 1 या 2 में तत्वों को लक्षित कर रहा था। तत्व को खोजने से पहले देरी जोड़ने की भी आवश्यकता थी क्योंकि यह आईफ्रेम से पहले खोज रहा था लोडिंग समाप्त।

0
user10284890user10284890 2 सितंबर 2018, 01:10