2017-06-22 112 views
-1

我試圖在輸入標籤中找到元素的Selenium Xpath。但是,我沒有得到價值。我使用了以下代碼:如何找到放置在輸入標籤中的元素的Selenium XPath?

WebDriverWait(driver, 
10).until(EC.presence_of_element_located((By.TAG_NAME("input"))))  
searchBox = driver.findElement(By.tagName("input")) 

但是,它不工作!

+0

你可以給URL或HTML嗎? –

+0

[鏈接](https://paytm.com/shop)是網址。在這個網址中,我試圖爲搜索欄獲取精確的** XPath **。 – Bharathi

+0

我可以看到有很多輸入標籤。可以嘗試使用elements/findElements –

回答

1

你可以使用更具體的發現者,如By.ID這將在網頁上尋找一個id,因爲id是唯一的,這應該更好。

搜索框的ID input_0您可以通過檢查元素看它從你的瀏覽器,或通過一般F12鍵下隱藏的開發工具

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID("input_0")))) 

searchBox = driver.find_element_by_id('input_0') 

有一個讀了這裏here爲有關定位器的更多信息。

讓我知道,如果它幫助,如果你今天學到的東西:)

+0

好的,謝謝你的資源。 – Bharathi

+0

@Bharathi答案是否解決了您的查詢?謝謝 – DebanjanB

+0

@DebanjanB還沒有。但是,嘗試其他選擇。 – Bharathi

0

這裏是回答你的問題:

我沒有看到你的代碼或定位線的任何問題。但是你可以考慮嘗試下面連同幾個點的代碼行:

  • URLhttps://paytm.com/shop需要一點時間來正確加載,所以我們需要等待HTML DOM是完全加載。使用ExplicitWait是正確的選擇。
  • 您可以考慮將時間限制從10秒增加到20秒。
  • 而不是TAG_NAME定位器考慮使用XPATH定位器。
  • 你的代碼行看起來像:

    search_box = WebDriverWait(browser, 20).until(
    EC.presence_of_element_located((By.XPATH, "//input[@id='input_0']")) 
    ) 
    search_box.click() 
    

讓我知道如果這個回答你的問題。

相關問題