package testproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;
public class mytestclass {
public static void main(String[] args) {
WebDriver Driver = new FirefoxDriver();
Driver.get("https://www.gmail.com/");
WebElement wb= Driver.findElement(By.name("Email"));
wb.sendKeys("sweta");
WebElement wb1= Driver.findElement(By.name("Passwd"));
wb1.sendKeys("123456");
WebElement wb2= Driver.findElement(By.id("signIn"));
wb2.click();
WebElement wb3= Driver.findElement(By.xpath(".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"));
wb3.click();
WebElement wb4= Driver.findElement(By.id("gb_71"));
wb4.click();
}
}
當我執行此代碼一切細下去,直到我想要被點擊按鈕的標誌點。線程「main」中的異常org.openqa.selenium.NoSuchElementException:無法找到元素:{「method」:「xpath」,「selector」:「.//*[@ id =' gb']/div [1]/div [1]/div [2]/div [5]/div [1]/a「}但是當我試圖用fierbug找到它的工作正常。 在上面提到的代碼中,我更改了電子郵件ID和密碼以確保電子郵件的安全。爲什麼我的測試拋出異常 - 無法在webdriver中定位元素?
我面臨的問題與我的stakwave已經發布,所以如果ü可以,那麼請看看這個鏈路webdriver is not able to click on a hyperlink in firefox
我要提出兩個建議。 1)一條忠告,這是大多數人通過物理登錄到Gmail的過程中,讓他們的測試檢查電子郵件已正確發送,但這是不必要的,因爲有許多*庫可以登錄到Gmail並且無需物理瀏覽器即可返回收件箱和郵件。 2)如果你*絕對必須*身體上去Gmail,我認爲你不這樣做,然後使用「基本模式」......它的HTML更簡單(雖然仍然複雜),但會給你一個更好的機會。 – Arran
@arran對不起,我沒有得到這個 - 什麼是「基本模式」? –
https://support.google.com/mail/answer/15049?hl=zh_CN ...但正如我所說的,我高度,高度,高度懷疑您甚至需要打擾登錄到Gmail,但您沒有解釋你的用例或上下文非常好。我也可以建議不要創建很多StackOverflow問題。你最終會自己混淆我們*和*。一次有一個問題。 – Arran