2017-03-03 110 views
1

我正在python中制作一个脚本,该脚本位于网页https://www.realtor.ca/上并搜索特定位置。我的问题是在一开始。当你在中间打开一个页面时是一个很大的搜索元素。 HTML该元素是:使用硒无法找到使用ID的元素

<input name="ctl00$elContent$ctl00$home_search_input" 
maxlength="255" id="home_search_input" class="m_hme_srch_ipt_txtbox" 
type="text" style="display: none;"> 

我试图用find_element_by_id方法来访问元素,但我总是得到错误:消息:无法找到元素:[ID =“home_search_input”]

这是我的代码:

from selenium import webdriver as web 
Url = "https://www.realtor.ca/" 
browser = web.Firefox() 
browser.get(Url) 
TextField = browser.find_element_by_id("home_search_input") 

有没有人遇到过类似的问题或没有人知道如何解决它?

+0

不会在该网页上 – depperm

+0

@depperm存在哪些不退出? – Nenad

+0

'当你在中间打开一个页面是一个大的搜索元素。该元素的Html是'....这不是该搜索的HTML,因为它是隐藏的 – depperm

回答

3

导航到页面时,起始ID为home_search_input的元素不可见。看起来,只有当您点击“您正在查找的位置”占位符(随即消失)时,此视图才会显示。你需要在测试中明确地做到这一点。

此外,请确保使用隐式或显式等待语句来确保您与之交互的元素已正确加载和呈现。

下面是使用Java客户端绑定你的页面的例子 - Python的应该是相当类似:

driver.get("https://www.realtor.ca/"); 

new WebDriverWait(driver, 5).until(ExpectedConditions.elementToBeClickable(By.id("m_hme_wherelooking_lnk"))).click(); 
driver.findElement(By.id("home_search_input")).sendKeys("demo");