मैं सेलेनियम का उपयोग करके निम्नलिखित आइटम ढूंढना चाहता हूं। जब भी कोई परिवर्तन होता है तो वर्ग का मूल्य बदल जाता है। यह एक जटिल पृष्ठ (एकाधिक आईफ्रेम, और गतिशील रूप से लोड किए गए अन्य आइटम) के अंदर है। एकमात्र अद्वितीय आईडी itemid है, जो गतिशील मान और title संयोजन है। अगर मैं इस क्रिया पर क्लिक करता हूं, तो मुझे जटिल वस्तुओं का एक और नया सेट मिल रहा है। मैं सेलेनियम के लिए नया हूँ। उसको कैसे करे?

एचटीएमएल:

<td itemid="xxyyy.as123" title="Actions" nowrap="" class="text-button">Actions&nbsp;<img src="../row.gif"></td>

<td itemid="xxyyy.as123" title="Actions" nowrap="" class="text-button button-active">Actions&nbsp;<img src="../row.gif"></td>

<td itemid="xxyyy.as123" title="Actions" nowrap="" class="text-button button-hover">Actions&nbsp;<img src="../row.gif"></td>

मैंने जिस कोड की कोशिश की:

  1. Xpath द्वारा खोजें

    var element=driver.FindElement(By.XPath("html/body/div[id='pageContent']/iframe/#document/ht‌ml/frameset/frame[name='detailsDisplay']/#document/html/body/form[name='tableForm‌']/div[id='divToolbarContainer']/div[id='divToolbar']/div[1][class='toolbar']/tab‌​le/tbody/tr/td[title='Actions']"));
    
  2. लिंक टेक्स्ट द्वारा खोजें

    var element = driver.FindElement(By.LinkText("Actions"));
    

किसी भी सहायता की सराहना की जाएगी।

0
Dineshkumar 4 मई 2018, 18:35

3 जवाब

सबसे बढ़िया उत्तर

अंत में मैं फ्रेम नामों का उपयोग करके इसे हासिल करने में सक्षम था।

 driver.SwitchTo().Frame("content").SwitchTo().Frame("detailsDisplay");                        
 var element = driver.FindElement(By.XPath("//*[@id=\"divToolbar\"]/div[1]/table/tbody/tr/td[1]"));

सबको धन्यवाद।

0
Dineshkumar Ponnusamy 4 मई 2018, 22:59

प्रयत्न

 By.CssSelector("td[title="Actions"]");
 By.CssSelector("td[itemid="xxyyy.as123"]");
 By.CssSelector("td[itemid="xxyyy.as123"][title="Actions"]")
0
Magesh 4 मई 2018, 19:21

डायनामिक सीएसएस चयनकर्ता बनाएं।

उदाहरण के लिए:

driver.FindElement(By.CssSelector("td[itemid$="xxyyy."]")).Click(); 

नोट: डायनेमिक एलिमेंट्स में लोकेटर का हमेशा एक हिस्सा होता है जो फिक्स होता है। हमें इस भाग का उपयोग करके लोकेटर उत्पन्न करने की आवश्यकता है।

  1. यदि निश्चित भाग प्रारंभ में है - गाजर वर्ण (^) का प्रयोग करें
  2. यदि स्थिर भाग मध्य में है - तारांकन चिह्न (*) का प्रयोग करें
  3. यदि निश्चित भाग अंत में है - डॉलर चिह्न ($) का प्रयोग करें
0
Saiful Azam 4 मई 2018, 20:23