सेलेनियम परीक्षण मैं एक सेलेनियम क्लिक() मैन्युअल माउस क्लिक के रूप में कैसे काम कर सकता हूं?जीडब्ल्यूटी 2.0
मैंने हाल ही में जीडब्ल्यूटी को 1.7.1 से 2.0 तक अपग्रेड किया है। कुछ सेलेनियम परीक्षण (सेलेनियमआरसी v1.0.1, आईई 7) अब असफल हो रहे हैं। ऐसा लगता है कि सेलेनियम.क्लिक() विधि एक जीडब्ल्यूटी ट्रीइटम का चयन नहीं कर रही है। एक मैन्युअल क्लिक ट्रीइटम को नीला कर देगा (यानी चयनित दिखें और "डीओएमटी-ट्री इटैम-चयनित" डीओएम में क्लास एट्रिब्यूट है), लेकिन सेलेनियम परीक्षण नहीं करता है।
मुझे विश्वास है कि सेलेनियम वास्तव में सही तत्व ढूंढ रहा है, बस उस पर क्लिक नहीं कर रहा है। यदि आप क्लिक विधि में स्ट्रिंग पैरामीटर बदलते हैं तो आप यह जांच सकते हैं कि तत्व नहीं मिला है जब सेलेनियम एक अपवाद फेंकता है।
नीचे दिए गए नमूना कोड जीडब्ल्यूटी शोकेस वेबसाइट का उपयोग करता है। यह "बीथोवेन" शब्द पर क्लिक करने का प्रयास करता है। यदि आप अपने माउस के साथ उस शब्द पर क्लिक करते हैं, तो आप TreeItem नीले रंग को देखेंगे। हालांकि जब आप सेलेनियम परीक्षण चलाते हैं, तो यह नहीं होगा।
package test;
import org.junit.Before;
import org.junit.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class TestTreeClick {
static Selenium selenium = null;
@Before
public void setUp() throws Exception {
if (selenium == null) {
selenium = new DefaultSelenium("localhost", 4444, "*iexplore",
"http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.start();
}
}
@Test
public void testingClicking() {
selenium.open("http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.click("gwt-debug-cwTree-staticTree-root-child0-content");
}
}
मैं कुछ अन्य तरीकों की कोशिश की है (Selenium.clickAt(), Selenium.fireEvent(), Selenium.mouseOver()/नीचे()/ऊपर()) - लेकिन कोई भी मैनुअल व्यवहार को पुनः।
सेलेनियम समारोह है कि वास्तव में क्लिक घटनाओं आग triggerMouseEvent सेलेनियम कोर/src/मुख्य/संसाधन/कोर/scripts/सेलेनियम-browserbot.js में है देखें। अधिकांश कोड एक ईवेंट ऑब्जेक्ट बना रहा है, और फिर यह element.dispatchEvent (ईवेंट) को कॉल करता है। – John