2017-01-13 56 views
0

我已經使用java的selenium webdriver自動執行登錄功能,並使用chrome驅動程序執行它。Internet Explorer中的Selenium Webdriver

它工作正常。然後我試着用internet explorer執行它。

但我收到「無法找到元素」。

我該如何解決這個問題?

代碼:

而不進入

/*登錄用戶名*/

@Test(優先級= 0)

public void loginWithoutUsername() throws InterruptedException { 

     int emptyUsernameRowNumber = 1; 
     WebElement login = driver.findElement(By.xpath("//*[@id='main-section']/div/div/section[2]/div[1]/ul/li[1]"); 
     login.click(); 
     Thread.sleep(1000); 
     WebElement username = driver.findElement(By.xpath("//*[@id='emailtxt']"); 
     username.clear(); 
     username.sendKeys(getCellContent(0, emptyUsernameRowNumber)); 
     Thread.sleep(1000); 
     WebElement password = driver.findElement(By.xpath("//*[@id='passwordtxt']"); 
     password.sendKeys(getCellContent(1, emptyUsernameRowNumber)); 
     WebElement continueButton = driver.findElement(By.xpath("//*[@id='main-section']/div/div/section[2]/div[3]/a/span"); 
     continueButton.click();  
} 

HTML:

<head> 
<body class="game-play game-login"> 
<div id="page"> 
<form id="form1" method="post" action="./"> 
<div class="aspNetHidden"> 
<script type="text/javascript"> 
<input id="email_hidden" name="email_hidden" value="2" type="hidden"> 
<input id="username_hidden" name="username_hidden" value="2" type="hidden"> 
<input id="profilepath_hidden" name="profilepath_hidden" value="2" type="hidden"> 
<div class="container fluid"> 
<div class="content-wrap"> 
<main id="main-section" class="transition page-in"> 
<div class="main-content"> 
<div class="game-login-wrap"> 
<section class="gme-ply-head"> 
<section class="center-pin"> 
<div class="title-head"> 
<ul class="log-reg clearfix"> 
<li class="active">Login</li> 
<li> 
</ul> 
</div> 
<div class="field-input"> 
<div class="login__row"> 
<input id="emailtxt" class="login__input email" name="emailtxt" placeholder="Email" type="text"> 
<span class="log-icon"> 
</div> 
<div class="login__row scn-top"> 
<input id="passwordtxt" class="login__input pass" name="passwordtxt" placeholder="Password" type="password"> 
<span class="log-icon"> 
</div> 
</div> 
+0

你正面臨着異常? – NarendraR

+0

org.openqa.selenium.NoSuchElementException:無法使用xpath查找元素== // * [@ id ='main-section']/div/div/section [2]/div [1]/ul/li [1 ] – Amrutha

回答

0

嘗試使用ExplicitWait檢查元素是否存在,然後做你的動作

WebDriverWait wait = new WebDriverWait(driver, 120); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='main-section']/div/div/section[2]/div[1]/ul/li[1]"))); 

// Do your actions 
+0

執行代碼時,元素在頁面上清晰可見。仍然明確的等待。但沒用。我得到相同的錯誤 – Amrutha

+0

你能否添加一些HTML和你的代碼片段,因爲它很難判斷髮生了什麼 – NarendraR

+0

代碼被添加的問題 – Amrutha

0

它經常用於在Chrome瀏覽器中編寫的xpath,不能與Internet Explorer一起使用。

在給定的HTML片段,並假設包裹在「禮」標籤上的登錄鏈接登錄,您可以嘗試使用下面的XPath:

//li[text()='Login'] 
+0

它不起作用。同樣的錯誤.. – Amrutha

相關問題