जैसा कि ज़ोलीएडुन का उल्लेख है, OpenQA.Selenium.Support.UI नामस्थान में एक सुंदर नई चयन कक्षा है। चयन तत्व और उसके विकल्पों तक पहुंचने का यह सबसे अच्छा तरीका है क्योंकि यह एपीआई इतना आसान है। मान लीजिए कि आप एक वेब पेज है कि इस
<!DOCTYPE html>
<head>
<title>Disposable Page</title>
</head>
<body >
<select id="select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</body>
</html>
आप का चयन इस प्रकार दिखाई देगा तक पहुँचने के लिए कोड कर रहे हैं की तरह कुछ लग रहा है मिल गया है करते हैं। ध्यान दें कि मैं अपने कन्स्ट्रक्टर को सामान्य IWebElement को पास करके ऑब्जेक्ट का चयन कैसे करता हूं। आपके पास ऑब्जेक्ट पर ऑब्जेक्ट पर बहुत सी विधियां हैं। अधिक जानकारी के लिए Take a look at the source, जब तक यह ठीक से प्रलेखित नहीं हो जाता है।
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium;
using System.Collections.Generic;
using OpenQA.Selenium.IE;
namespace Selenium2
{
class SelectExample
{
public static void Main(string[] args)
{
IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("www.example.com");
//note how here's i'm passing in a normal IWebElement to the Select
// constructor
Select select = new Select(driver.FindElement(By.Id("select")));
IList<IWebElement> options = select.GetOptions();
foreach (IWebElement option in options)
{
System.Console.WriteLine(option.Text);
}
select.SelectByValue("audi");
//This is only here so you have time to read the output and
System.Console.ReadLine();
driver.Quit();
}
}
}
हालांकि समर्थन वर्ग के बारे में कुछ बातें ध्यान दें। यहां तक कि अगर आपने नवीनतम बीटा डाउनलोड किया है, तो समर्थन डीएलएल वहां नहीं होगा। समर्थन पैकेज में जावा पुस्तकालयों में अपेक्षाकृत लंबा इतिहास है (यही वह जगह है जहां पेज ऑब्जेक्ट रहता है) लेकिन यह अभी भी नेट ड्राइवर में बहुत ताजा है। सौभाग्य से, स्रोत से निर्माण करना वास्तव में आसान है। I pulled from SVN ने बीटा डाउनलोड से WebDriver.Common.dll का संदर्भ दिया और सी # एक्सप्रेस 2008 में बनाया गया। इस वर्ग को अन्य कुछ वर्गों के रूप में भी परीक्षण नहीं किया गया है, लेकिन मेरा उदाहरण इंटरनेट एक्सप्लोरर और फ़ायरफ़ॉक्स में काम करता है।
कुछ अन्य चीजें हैं जिन्हें मुझे ऊपर दिए गए कोड के आधार पर इंगित करना चाहिए।सबसे पहले लाइन आप कुछ चुनिंदा तत्व
driver.FindElements(By.TagName("select"));
सभी चयन तत्वों को खोजने के लिए जा रहा है पता लगाने के लिए इस्तेमाल कर रहे थे। आपको शायद '12 'के बिना driver.FindElement
का उपयोग करना चाहिए।
इसके अलावा, आप शायद ही कभी इनविगेशन का उपयोग करेंगे। आप की तरह driver.Navigate().GoToUrl("http://example.com");
अन्त में अपने नेविगेशन के सबसे करेंगे, DefaultSelenium
बड़े सेलेनियम 1.x API को एक्सेस करने का तरीका है। सेलेनियम 2 सेलेनियम 1 से एक बहुत ही महत्वपूर्ण प्रस्थान है, इसलिए जब तक आप पुराने सेलेनियम 2 एपीआई (जिसे अक्सर वेबड्राइवर एपीआई के रूप में जाना जाता है) में पुराने परीक्षणों को माइग्रेट करने का प्रयास नहीं कर रहे हैं, तो आप डिफॉल्टसेलेनियम का उपयोग नहीं करेंगे।
+1 'चयन करें' वर्ग, जैसा कि ज़ोलीएडुन द्वारा लिंक किया गया था, लेकिन मैं इस उत्तर को स्वीकार कर रहा हूं क्योंकि आपने अधिक जानकारी प्रदान की है। चूंकि 'चयन' अभी तक सार्वजनिक डीएल में उपलब्ध नहीं है, इसलिए मैं वर्तमान में कक्षा और ज़्लोएडुन द्वारा अपवाद का उपयोग कर रहा हूं। 'FindElements' के संबंध में, मुझे इसका उपयोग करने की आवश्यकता है क्योंकि 1 से अधिक 'चयन' है जिसे मैं पुनर्प्राप्त करना चाहता हूं। अंत में, 'डिफॉल्टसेलेनियम' के संबंध में इस मुद्दे का उल्लेख करने के लिए धन्यवाद, हालांकि मेरे पास इसका पालन करने का सवाल है; क्या 'डिफॉल्टसेलेनियम' ऑफ़र के कई तरीकों का उपयोग करने का कोई तरीका है? IxebDriver को 2.x के साथ जाने का तरीका होने के लिए –
+1। बस शुरू करना और अधिकांश डेमो जिन्हें मैं डिफॉल्टसेलेनियम का उपयोग कर सकता हूं। –