无法分析h4标记内的数据:Python3

无法分析h4标记内的数据:Python3,python,python-3.x,web-scraping,beautifulsoup,Python,Python 3.x,Web Scraping,Beautifulsoup,在解析第三个表中“文献”选项卡中的数据时,我遇到了一个问题。我走到桌子前的步骤: 请访问ibl.mdanderson.org/fasmic/ 键入并选择AKT1 3。注意:'GO'按钮不起作用,请单击下拉列表中的选项 单击文本为“MS”的绿色按钮,将显示一个新表 在这个新表中,将有一个名为文学的选项卡,我需要文学文本和PMID 我尝试了以下代码,但它给出了一个空列表: xyz= driver.find_element_by_xpath("//*[contains(text(),'Literatu

在解析第三个表中“文献”选项卡中的数据时,我遇到了一个问题。我走到桌子前的步骤:

请访问ibl.mdanderson.org/fasmic/

键入并选择AKT1 3。注意:'GO'按钮不起作用,请单击下拉列表中的选项

单击文本为“MS”的绿色按钮,将显示一个新表

在这个新表中,将有一个名为文学的选项卡,我需要文学文本和PMID

我尝试了以下代码,但它给出了一个空列表:

xyz= driver.find_element_by_xpath("//*[contains(text(),'Literature')]").click()
    for elements in driver.find_elements_by_xpath('//div[@class="tab-pane ng-scope active"]'):

        soup = BeautifulSoup(driver.page_source, 'lxml')
        table = soup.find('div', attrs={'id': "literature_div"})
        table_body = table.find('h4')
        rows = table.find_all('h4')
        for row in rows:
             cols = row.find_all('h4')
             # cols = [ele.text.strip() for ele in cols]
             litrature.append([ele for ele in cols if ele])  # Get rid of empty value
             print("Data from COLUMN 1:")
             print(litrature)
我如何解决这个问题

更新
当我尝试单击“文献”表下的“下一步”按钮时,出现以下错误: 消息:的元素引用已过时;元素不再附加到DOM,它不在当前框架上下文中,或者文档已刷新 下面是我为单击下一个buton添加的行:driver.find_element_by_xpath'//a[@ng click=selectPagepage+1,$event]'。单击


我如何解决这个问题?

像这样?有更多python等待知识的人肯定可以改进我的等待线路

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC

url = "https://ibl.mdanderson.org/fasmic/#!/"
d = webdriver.Chrome()
wait = WebDriverWait(d, 10)
d.get(url)
d.find_element_by_css_selector('[type=text]').send_keys('AKT1 (3 mutations)')
d.find_element_by_css_selector("input[type='text']").send_keys(Keys.RETURN)
btn = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".btn.btn-default.btn-tab-avail")))
btn.click()
d.find_element_by_css_selector("[heading=Literature]").click()

ele = wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, "#literature_div [ng-repeat]"), "PMID"))
eles = d.find_elements_by_css_selector("#literature_div [ng-repeat]")

for item in eles:
    print(item.text,"\n")

d.quit()

你需要等3次

from selenium import webdriver

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome()
driver.get('https://ibl.mdanderson.org/fasmic/#!/')

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH , '//input')))
input = driver.find_element_by_xpath("//input")
input.send_keys("AKT1\n")

button = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CLASS_NAME , 'btn-tab-avail')))
button.click()
driver.find_element_by_xpath("//*[contains(text(),'Literature')]").click()

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#literature_div h4')))
rows = driver.find_elements_by_css_selector("#literature_div h4")

litrature = []

for item in rows:
    item = item.text
    litrature.append(item)
    print("Data from COLUMN 1:")
    print item

是否有可以共享的URL和其他代码?相关的HTML会有所帮助,可以通过@QHarr使用代码段工具插入。以下是URL:ibl.mdanderson.org/fasmic/!到达表格的步骤:-访问ibl.mdanderson.org/fasmic/!-键入并选择AKT1 3。注意:'GO'按钮不起作用,请单击下拉菜单中的选项-单击绿色按钮,文本为'MS',将出现一个新表。-在这个新表中,将有一个名为“文献”的选项卡,我需要下表中的文献文本和PMIDLiterature@QHarr单击文献表下的“下一步”按钮时,我遇到错误。消息:的元素引用已过时;元素不再附加到DOM,它不在当前框架上下文中,或者文档已刷新当我尝试单击“文献”表下的“下一步”按钮时,我收到以下错误:消息:的元素引用已过时;要么元素不再附加到DOM,要么它不在当前框架上下文中,要么文档已刷新,下面是我添加的一行,以单击下一个buton:driver。通过xpath'//a[@ng click=selectPagepage+1,$event]'查找元素。clickHiya-这听起来像是一个新问题。你是在运行我的脚本还是其他答案?如果你愿意,你可以在发布时用@qharr在这里ping我