Python Selenium看不到数据

时间:2017-11-17 19:54:08

标签: javascript python selenium

好的,所以我不熟悉使用Python和HTML / Javascript进行编程,但到目前为止我已经成功地抓了一两个网站。但是,我遇到了这个网站,它让我绕过弯道。

我的代码是:

#import libraries
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By



#set chromepath to include .exe
chrome_path = r"C:\Program Files\Python37\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)

#set variables
myurl='http://www.ctbar.org/search/newsearch.asp'
driver.get(myurl) # loads the 1st page into the browser

element = driver.find_elements(By.ID, 'SearchResultsGrid')

print (element)
print('Done')

driver.quit()

我得到的唯一输出是:

[] 完成

我错了几点?

在我沮丧地放弃之前请帮忙: - )

3 个答案:

答案 0 :(得分:1)

您要查找的元素包含在iframe SearchResultsFrame

试试这个:

driver.switch_to_frame('SearchResultsFrame')
element = driver.find_elements(By.ID, 'SearchResultsGrid')

答案 1 :(得分:1)

您将获得一个空白列表,因为驱动程序无法找到与定位器策略匹配的元素(By.ID,' SearchResultsGrid')。

它在一个框架内,你需要先切换到框架,然后找到元素

答案 2 :(得分:1)

您找到的位于iframe内的元素,您必须先将上下文切换到它:

allfpga: fpga0 fpga1 fpga2 fpga3 fpga4 fpga5 fpga6

fpga0:
    cd fpgas/$(@)/build && $(MAKE)
fpga1:
    cd fpgas/$(@)/build && $(MAKE)
fpga2:
    cd fpgas/$(@)/build && $(MAKE)
fpga3:
    cd fpgas/$(@)/build && $(MAKE)
fpga4:
    cd fpgas/$(@)/build && $(MAKE)
fpga5:
    cd fpgas/$(@)/build && $(MAKE)
fpga6:
    cd fpgas/$(@)/build && $(MAKE)