2017-08-02 4 views
5

मेरे पास कई परीक्षण हैं। कभी-कभी यदि कोई तत्व नहीं मिल पाता है तो यह स्क्रीन के ऊपरी बाईं ओर क्लिक करता है। यह तब भी नहीं होता है जब ऐसा होता है। मुझे यकीन नहीं है कि यह क्यों हो रहा है। मेरे सेटअप विधि में मैं इसे "अधिकतम" तत्व पर क्लिक करने के लिए कह रहा हूं, हालांकि यदि वह तत्व नहीं ढूंढ पाता है तो मैंने इसे पकड़ में रखा और इसे अनदेखा कर दिया। किसी कारण से जब यह तत्व नहीं ढूंढ पाता है तो यह स्क्रीन के ऊपरी बाएं कोने पर क्लिक करता है जिसमें एप्लिकेशन सत्र होता है।सेलेनियम गलत तत्व पर क्लिक

किसी भी विचार किसी को भी यह क्यों हो रहा है है या यह सिर्फ कैसे सेलेनियम कभी कभी प्रतिक्रिया करता है

के रूप में इस प्रकार है

private string wordId = OfficeVersion.Word(); 
    private string excelId = OfficeVersion.Excel(); 
    private string powerPointId = OfficeVersion.PowerPoint(); 
    private const string AppDriverUrl = "http://127.0.0.1:4723"; 
    public static WindowsDriver<WindowsElement> excelSession; 
    public static WebDriverWait webDriverWait; 
    xl.Workbook WB; 
    public static bool skipTearDown = false; 
    WindowsElement create; 
    WindowsElement blankWorkBook; 
    public static DesiredCapabilities appCapabilities = new DesiredCapabilities(); 
    [TestInitialize] 
appCapabilities.SetCapability("app", excelId); 

      var initialSession = new WindowsDriver<WindowsElement>(new Uri(AppDriverUrl), appCapabilities); 

      var capabilities = new DesiredCapabilities(); 
      capabilities.SetCapability("app", "Root"); 
      excelSession = new WindowsDriver<WindowsElement>(new Uri(AppDriverUrl), capabilities); 
      webDriverWait = new WebDriverWait(excelSession, TimeSpan.FromSeconds(10)); 

      CommonMethods.keyCheck(excelSession); 
      webDriverWait = new WebDriverWait(excelSession, TimeSpan.FromSeconds(10)); 
      CommonMethods.IsElementDisplayed(excelSession, new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod(), "CreateErrorIcon", "Create error when launching Excel"); 
      try 
      { 

यह तत्व मैं मुसीबत अगर यह नहीं करता है अनदेखी हो रही है है मेरे कोड है टी मौजूद

   webDriverWait.Until(ExpectedConditions.ElementTo‌​BeClickable(excelSession.FindElementByName("Maximize"))).Click(); 
      } 
      catch (Exception) 
      { 

       //ignore 
      } 
+0

सेलेनियम की मेरी स्मृति धुंधला है। लेकिन क्या यह हो सकता है कि यह वास्तव में डोम में तत्व ढूंढ रहा है, भले ही यह पृष्ठ पर न हो? तत्व खोजने के बाद, आपको शायद यह जांचने की आवश्यकता है कि उस पर क्लिक करने से पहले तत्व दिखाई दे रहा है या नहीं। – jpaugh

उत्तर

0

आप का पता लगाने और Webelement कि जीत के लिए अधिकतम बटन के लिए अंक प्राप्त करने के लिए प्रयास करने के पहले वर्तमान विंडो संभाल पाने के लिए कोशिश कर सकते हैं और उसके बाद डो। संभवतः, आपको वेबलेमेंट पर बस एक सुरक्षित प्रतीक्षा करने की आवश्यकता हो सकती है, बस सुरक्षित रहें।

यह API सेलेनियम के लिए एक सी # ग्राहक के लिए उपयोगी हो सकता है - driver.SwitchTo() विंडो (संभाल)

और जानकारी के लिए, आप जाँच कर सकते हैं here

संबंधित मुद्दे