我正在使用硒webdriver執行1000個測試。 對於每個測試用例,我需要點擊網頁上的「ID」元素。無法使用硒webdriver查找元素
我用WebElement x = driver.findElement(By.xpath("//*[@id='TEST']").click();
事件。
但不幸的是,對於幾個測試場景(2或3的1000),它會拋出一個錯誤,指出「無法找到元素」。對於其餘的測試用例,它照常執行。
我試過使用嘗試&捕捉方法&刷新頁面,但功能正常,但性能太慢。
我正在使用硒webdriver執行1000個測試。 對於每個測試用例,我需要點擊網頁上的「ID」元素。無法使用硒webdriver查找元素
我用WebElement x = driver.findElement(By.xpath("//*[@id='TEST']").click();
事件。
但不幸的是,對於幾個測試場景(2或3的1000),它會拋出一個錯誤,指出「無法找到元素」。對於其餘的測試用例,它照常執行。
我試過使用嘗試&捕捉方法&刷新頁面,但功能正常,但性能太慢。
您是否嘗試過使用ExpectedConditions類(http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html) 應該足夠在單擊之前添加一些等待elementToBeClickable的操作。
那麼最好的解決方案是什麼?我試圖添加等待命令,但不是運氣。 – user2000759
我有一個解決方案。解決方法是:driver.manage()。timeouts()。pageLoadTimeout(20,TimeUnit.SECONDS);謝謝大家。 – user2000759
你是什麼意思「嘗試&捕捉方法&刷新方法」。 Selenium本身模仿Web瀏覽器,因此它有時不穩定。 1000次測試需要很長時間,因此請確保您的計算機不會入睡,並且不要打擾它的測試過程,直到完成。 如果您最小化瀏覽器,某些測試將失敗。
我添加了刷新和等待命令,它按預期工作。 – user2000759
找出哪個頁面卡住了,在那裏添加一些等待功能。那是我以前做過的。問題的主要原因是當您檢查頁面時,某些頁面內容未準備好。 – yehe
我嘗試過,但隨機掛在各種頁面。但沒有運氣。 – user2000759
我會建議可能會增加你的隱含等待。類似於
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
您是否在相同場景中出現錯誤? – Manigandan
由於Selenium會啓動瀏覽器,因此性能會很低,如果你這樣做了1000次,那很明顯。這需要什麼?如果它只是從頁面上獲取一些數據,Selenium是這個工作最糟糕的工具。 – Arran