2017-08-02 105 views
5

我有一些測試。有時如果找不到元素,只需點擊屏幕的左上角即可。然而,這並不是一直髮生的,但它確實發生了。我不知道爲什麼會發生這種情況。在我的setUp方法中,我告訴它單擊元素「Maximize」,但是如果它找不到那個元素,我把它放入catch並忽略它。出於某種原因,當它找不到該元素時,只需點擊具有應用程序會話的屏幕的左上角。硒點擊錯誤的元素

有任何人任何想法,爲什麼發生這種情況還是硒有時只是如何響應

我的代碼如下

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

我的硒的記憶是模糊的。但它可能是它實際上在DOM中查找元素,即使它不在頁面上?找到該元素後,您可能需要在嘗試點擊該元素之前檢查該元素是否可見。 – jpaugh

回答

0

您可以嘗試先獲取當前窗口句柄,然後嘗試查找並獲取指向獲勝最大化按鈕的Webelement道瓊斯指數。可能的話,您可能還需要對WebElement進行簡單的等待以確保安全。

這個API可能是一個C#客戶端硒有用 - driver.SwitchTo()窗口(句柄)

而對於詳細信息,您可以檢查here

相關問題