javascript
  • java
  • selenium
  • xpath
  • automation
  • 2015-11-10 65 views 0 likes 
    0

    我正在嘗試使用硒和PhantomJS驅動程序編寫一些自動化java測試,但我遇到了一個很大的問題,試圖與文本字段進行交互。Selenium:幫助將文本發送到浮動報頭中的字段

    http://www.jigsaw-online.com/我想送一些文本搜索框,但我已經通過定位器嘗試許多不同的發現的,我總是得到ElementNotVisibleException當我嘗試發送鍵到外地

    @FindBy(xpath="//header//form[@id='search']//input[@type='search']") 
    @FindBy(xpath="//input[@name='w']") 
    @FindBy(xpath="//form[@id='search']//input[@type='search']") 
    

    我知道所有這些xpath都是正確的,因爲我可以從測試中獲取它的屬性。

    我能想到的唯一的事情是,如果你向下滾動頁面的標題如下。

    有人可以提出一種方法,我可以發送密鑰到這個領域?

    +2

    因爲您使用的是無頭瀏覽器驅動程序,所以非常困難...您可能需要將其滾動到視圖中。看看這個[問題](http://stackoverflow.com/questions/3401343/scroll-element-into-view-with-selenium) –

    +0

    謝謝你,滾動沒有解決它,但使用JavaScript的參數[0 ]就像在那個例子中,我可以在元素上調用.value =並且可以向它發送鍵。 –

    回答

    0

    在該頁面頂部的搜索框中id不是search,但sli_search_1

    所以最簡單的xpath將是//*[@id="sli_search_1"]

    另一方面,爲什麼你不能通過ID找到該元素?例如:

    searchBox = driver.findElement(By.Id("sli_search_1")); 
    searchBox.sendKeys("hello"); 
    

    希望它有幫助。

    +0

    對不起,我的xpath有點搞砸了,如果你在主頁上或做一個搜索,你可以使用稍微不同的xpath來獲取字段。我已經嘗試了你的建議,但這不起作用,你自己嘗試一下,你會看到拋出異常。我設法使用javascript在字段中輸入文本,所以我想我將不得不使用JS代替 –

    相關問題