如何在输入标记中找到元素的Selenium XPath?

时间:2017-06-22 12:52:46

标签: python selenium xpath selenium-webdriver

我试图在输入标记中找到元素的Selenium Xpath。但是,我没有得到这个价值。我使用了以下代码:

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

但是,它不起作用!!!

2 个答案:

答案 0 :(得分:1)

您可以使用更具体的查找器,例如By.ID,这将在网页上查找ID,因为ID是唯一的,这应该更好。

搜索框的ID为input_0您可以通过浏览器中的inspect元素或通常隐藏在F12键下的开发工具查找

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

searchBox = driver.find_element_by_id('input_0')

请阅读此处here以获取有关定位器的更多信息。

让我知道它是否有帮助,如果你今天学到了什么:)

答案 1 :(得分:0)

以下是您的问题的答案:

我认为您的代码或定位器没有任何问题。但您可以考虑尝试下面的代码行以及几点:

  • URL https://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()
    

如果这回答你的问题,请告诉我。