2017-08-05 69 views
0

我在自動化測試新的,且嘗試使用硒3 booking.com網站初步實踐時難度如何處理自動建議網頁元素硒3

有自動建議的文本框,當你輸入的字,顯示汽車的建議,你可以從列表中點擊即新加坡市中心

enter image description here

有無嘗試使用XPath id("basiclayout")/div[@class="leftwide rilt-left"]/div[@class="sb-searchbox__outer"]/form[@id="frm"]/div[@class="sb-searchbox__row u-clearfix"]/div[1]/div[@class="c-autocomplete sb-destination"]/ul[@class="c-autocomplete__list sb-autocomplete__list -visible"]/li[@class="c-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis"]

或CSS c-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis

所有場景失敗時,我對硒的Java

如何處理這樣的網頁元素上運行我的測試用例?

完整代碼:

public class Selenium3Testing { 
private WebDriver driver; 

@Before 
public void setUp() { 
    String baseUrl = "https://www.booking.com/"; 
    System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe"); 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    driver = new ChromeDriver(capabilities); 
    driver.get(baseUrl); 
} 

@After 
public void tearDown() { 
    driver.quit(); 
} 

@Test 
public void openBookingDotCom() { 
    driver.findElement(By.id("ss")).click(); 
    driver.findElement(By.id("ss")).clear(); 
    driver.findElement(By.id("ss")).sendKeys("Singapore"); 
    //click on auto suggestion row number 2 
    driver.findElement(By.css("c-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis")).click(); 
    } 
} 
+0

請仔細閱讀【問】,尤其是關於[mcve](MCVE)的部分,以及[預計需要多少研究工作?](https://meta.stackoverflow.com/questions/261592/how-much-research - 預期的堆棧溢出用戶)這將幫助您調試自己的程序併爲自己解決問題。如果你這樣做並且仍然卡住,你可以回過頭來發布你的MCVE,你試過的,以及執行結果,包括任何錯誤信息,這樣我們可以更好地幫助你。還提供了一個鏈接到頁面和/或相關的HTML。 – JeffC

+0

您可以分享您嘗試自動化的網址和確切的手動步驟嗎? – DebanjanB

+0

用完整的代碼更新了我的問題。 –

回答

1

我剛從手機打字,所以沒有代碼,在這裏我們可以做到這一點。

對於輸入框的輸入,我希望如果我們傳遞了總鍵值的話,建議可能無法加載或延遲。因此,我遵循的最佳方式是傳遞每個字符。可能是每個字符的睡眠時間爲300毫秒。寫成一個小的方法,將循環所有字的字。

要點擊建議列表,請嘗試xpath包含文本..或任何一個運作良好。

+0

感謝它在sendkeys命令後添加Thread.sleep時有效 –