2017-10-05 120 views
0

我正在和Selenium一起在我的應用程序中做一些測試,並且使用方法「Click」的功能在兩天前沒有正常工作。Selenium ChromeDriver c# - 不能正常工作點擊

例如,簡單的功能檢查登錄:

public LoginConnect() : base() { } 

    #region pageElements 
    [FindsBy(How = How.Id, Using = "userNameInput")] 
    public IWebElement userId { get; set; } 

    [FindsBy(How = How.Id, Using = "userPasswordInput")] 
    public IWebElement password { get; set; } 

    [FindsBy(How = How.Id, Using = "LoginButton")] 
    public IWebElement loginButton { get; set; } 

    #endregion 

    #region pageActions 
    public JobList LogConnect(String userId, String password) 
    {    
     CleanFormConnect(); 
     this.userId.SendKeys(userId); 
     this.password.SendKeys(password);    
     this.loginButton.Click(); 
     return new JobList(); 
    } 
} 

它不工作的罰款。函數Click沒有錯誤,但瀏覽器沒有做任何事情。

的Chrome版本是61.0.3163.100 驅動程序的版本是2.33

如果我改變功能

this.loginButton.Click(); 

this.loginButton.SendKeys(Keys.Return); 

它將按預期工作。

+0

所以,你的代碼沒有改變,這是工作。有什麼改變?是否更新了Chrome,在其他瀏覽器中怎麼樣 –

+0

另外,您是否也檢查過瀏覽器的控制檯輸出,查看是否有任何錯誤消息 –

+0

代碼沒有變化,瀏覽器版本沒有變化。事實上,測試並沒有失敗。測試在下一條指令中失敗,因爲它無法找到下一個元素,因爲登錄不成功。 –

回答

0

我已經修復了添加代碼來管理點擊JavaScript的問題。

public static void JsClick (IWebElement element) 
    { 
     IJavaScriptExecutor js = (IJavaScriptExecutor)ContextDriver.GetDriver(); 
     js.ExecuteScript("arguments[0].click();", element); 
    }