मैं चरणों में webdriver
इंजेक्ट करने की कोशिश कर रहा हूं। मैंने this instructions का उपयोग किया है और यह अच्छी तरह से काम करता है।ककड़ी इंजेक्शन ककड़ी में कैसे काम करता है?
विचार वेबड्राइवर को सेवा कक्षाओं में चरणों के रूप में इंजेक्ट करना है। प्रारंभिक चरण में, आपको निम्न निर्भरता जोड़ने की आवश्यकता है।
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
निर्भरता इंजेक्शन में शामिल तीन मुख्य वर्ग हैं। यहां हम उन्हें एक-एक करके पेश करते हैं।
BaseUtil
BaseUtil वर्ग जो WebDriverof सेलेनियम के लिए एक विशेषता है। वर्ग काफी सरल है:
public class BaseUtil {
private WebDriver driver;
public WebDriver getDriver() {return driver;}
public void setDriver(WebDriver driver) { this.driver = driver;}
}
हुक
हुक वर्ग @Before, @After
शामिल हैं। विधि testInitialier() WebDriver फ़ाइल फ़ाइल लोड करने और एक उदाहरण बनाने के लिए ज़िम्मेदार है, जबकि विधि testTearDown() ब्राउज़र को बंद करने के लिए ज़िम्मेदार है।
public class Hook extends BaseUtil{
BaseUtil base;
@Before
public void testInitializer(){
File file = new
File(IgniteTaskApplication.class.getClassLoader().getResource("driver/chromedriver.exe").getFile());
String driverPath=file.getAbsolutePath();
System.out.println("Webdriver is in path: "+driverPath);
System.setProperty("webdriver.chrome.driver",driverPath);
base.setDriver(new ChromeDriver());
}
public Hook(BaseUtil base) {
this.base = base;
}
@After
public void tearDownTest(){
base.getDriver().close();
}
}
कदम
और चरणों वर्ग चरणों जो संकलित सुविधाओं फ़ाइल से आया हैं। ग्रहण में फीचर फ़ाइल को संकलित करने के लिए आपको अपने ग्रहण में एक्लिप्स-ककड़ी प्लगइन स्थापित करने की आवश्यकता है।
public class ClickButton_Steps extends BaseUtil{
BaseUtil base;
public ClickButton_Steps(BaseUtil base){
super();
this.base=base;
}
@When("^I clcik on the button$")
public void i_clcik_on_the_button() throws Throwable {
cb=new ClickButtonPage(base.getDriver());
cb.navigator();
}
// The other steps ...
}
मैं इसे कैसे चला सकता हूं?
ओपन सुविधा फ़ाइल -> के रूप में चलाएँ -> JUnit
प्रश्न
मैं क्या एक तरह से है जो यह की ओर जाता है में चल तरीकों में से आदेश है सोच रहा हूँ के साथ चलाने के लिए निर्भरता अन्तःक्षेपण?
मुझे लगता है कि आदेश का पालन के रूप में है:
- JUnit
@Before
विधि है जो हैtestInitializer()
testInitializer()
हुक कक्षा में है, इसलिए यहHook
वर्ग का एक उदाहरण बनाने के लिए की जरूरत है कहते हैं।- यह हुक वर्ग के कन्स्ट्रक्टर को कॉल करने की ओर जाता है।
लेकिन, मैं बाकी चरणों को समझ नहीं पा रहा हूं। शायद यह भी सच नहीं है। मेरा मतलब है, मेरे पास एक कार्यात्मक कोड है लेकिन मैं यह नहीं समझा सकता कि यह कैसे काम करता है?