我在C#測試中遇到了一些困難,因爲它對響應式網站應用程序很困難。我有四個網站的可能性。這些是相同代碼的兩種變體,但皮膚不同,並且每個變體都響應地調整大小。我的測試使用的尺寸爲1024x768,代表桌面,420x620代表手機。兩個桌面測試都完美地工作,但是當嘗試點擊一個單選按鈕時,一個(只有一個)手機崩潰。我多次修改我的代碼,試圖找到一個沒有成功的解決方案;總是,三次傳球,但一次移動崩潰。我終於用下面的代碼來解決此問題:Webdriver不會在正確的座標上點擊
public void ClickRadioButton()
{
By element = By.Id("radioButtonID");
IWebElement wait = WaitForElementToAppear(WebDriver, 5000, element);
int x = wait.Location.X;
int y = wait.Location.Y;
wait.Click();
}
與wait.Click(斷點),並檢查座標值,wait.Location.X有52值和wait.Location.Y有值爲1596.這些座標對於單選按鈕的位置是正確的,但wait.click()失敗並顯示以下消息:
意外錯誤。元素在點(58,6)不可點擊。其他元素會收到點擊:
我不明白爲什麼wait.Click()使用這些座標。
你可以分享你正在使用的WaitForElementToAppear方法嗎? – AlexCharizamhard
作爲一個快速更新,問題已被確定爲單選按鈕元素不在視圖中,僅用於網頁的這一個呈現。它呈現在視圖頂部的上方,它解釋了報告的y座標。沒有一種衆所周知的方式將元素引入視圖工作。在元素click()處設置斷點並手動將其放入視圖中,然後向前邁進成功,但接下來的單選按鈕失敗。我正在繼續研究這個問題,並希望提出一個能夠在未來幫助其他人的決議。 –