我试图在输入标记中找到元素的Selenium Xpath。但是,我没有得到这个价值。我使用了以下代码:
WebDriverWait(driver,
10).until(EC.presence_of_element_located((By.TAG_NAME("input"))))
searchBox = driver.findElement(By.tagName("input"))
但是,它不起作用!!!
答案 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
是正确的选择。 TAG_NAME
定位器考虑使用XPATH
定位器。您的代码行如下所示:
search_box = WebDriverWait(browser, 20).until(
EC.presence_of_element_located((By.XPATH, "//input[@id='input_0']"))
)
search_box.click()
如果这回答你的问题,请告诉我。