2017-09-20 60 views
-1

直到昨天下文提到的代碼工作正常,但現在我面臨的一些問題。 該代碼打開Firefox瀏覽器然後加載facebook.com但是代碼不發送 電子郵件地址和密碼的網頁瀏覽器即的SendKeys()不工作。 我驗證電子郵件地址和密碼的文本框都這是正確的ID代碼還無法正常工作。在兩個文本框您正在執行的SendKeys之前的SendKeys()不工作硒webdriver的

import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.WebDriver; 

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.JavascriptExecutor; 
public class Webdriver2 { 

    WebDriver driver ; 
    JavascriptExecutor jse; 
    public void invokeBrowser() 
    { 
     try 
     { 
     System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.19.0-win64\\geckodriver.exe"); 
     driver = new FirefoxDriver(); 
     driver.manage().deleteAllCookies(); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 


     driver.get("https://www.facebook.com/"); 
     search(); 
     } 
     catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
     } 

    } 
    public void search() 
    { 
     try 
     { 
     driver.findElement(By.id("email")).sendKeys("[email protected]"); 
     Thread.sleep(4000); 
     driver.findElement(By.id("pass")).sendKeys("password"); 
     Thread.sleep(4000); 
     driver.findElement(By.id("u_0_2")).click(); 
     Thread.sleep(4000); 
     /*driver.findElement(By.name("q")).sendKeys("spit mumbai"); 
     Thread.sleep(4000); 
     driver.findElement(By.xpath(" //button[@aria-label='Search' and @data-testid='facebar_search_button'] ")).click();*/ 

     } 
     catch(InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Webdriver2 w = new Webdriver2(); 
     w.invokeBrowser(); 
    } 
} 
+0

你得到任何錯誤? –

+0

代碼不會改變,geckodriver不會改變,我覺得兩個可能的原因:1)你的Firefox升級,2)你需要的SendKeys之前添加的等待,你沒有遇到這個問題之前,它的郵件文本框在60秒內顯示出來(您設置頁面加載超時30秒和30 implicitlyWait秒)之前,在大多數的時間,但現在Facebook主頁頁面變得緩慢或網絡變慢。 – yong

回答

1

嘗試點擊:

driver.findElement(By.id("email")).click(); 
driver.findElement(By.id("email")).sendKeys("[email protected]"); 

文本框可能需要關注的焦點。

+0

發佈答案時請查看格式準則。要將文本格式設置爲代碼,只需要用4個空格縮進這些行。 >字符通常用於引號或有時用於錯誤消息,而不是代碼。我爲你確定了格式,這樣你也可以看看。 – JeffC

0

我們需要如下這裏照顧一對夫婦的事情:

  1. Email or Phone字段是<input>標籤內,所以我們需要把它考慮而選擇定位。
  2. Password場也是<input>標籤內,所以我們需要把它考慮而選擇定位。
  3. 如果您仔細觀察Log In按鈕的id是動態的,並且也在<input>標籤內,那麼我們也需要考慮這個因素。
  4. 這裏是最小樣本代碼塊使用cssSelector訪問URL https://www.facebook.com/,提供Email or PhonePassword,最後點擊Log In按鈕:

    package demo; 
    
    import org.openqa.selenium.By; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.firefox.FirefoxDriver; 
    
    public class Facebook_Login_CSS_FF { 
    
        public static void main(String[] args) { 
    
    
         System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe"); 
         WebDriver driver = new FirefoxDriver(); 
         driver.get("https://www.facebook.com/"); 
         driver.findElement(By.cssSelector("input#email")).sendKeys("Ryusei"); 
         driver.findElement(By.cssSelector("input[name='pass']")).sendKeys("Nakamura"); 
         driver.findElement(By.cssSelector("input[value='Log In']")).click(); 
        } 
    
    } 
    
+0

@RyuseiNakamura我的答案解決了你的問題嗎? – DebanjanB

相關問題