首页 > 解决方案 > 如何使用 Selenium 填写包含多行的表格?

问题描述

我正在尝试填写一个超过250 行的表格,而实现它的唯一方法是逐行迭代我的数据框,但我遇到的问题是,由于某种原因,该页面向我发出了警报传奇

“会话已过期,重新连接。”

那么我的问题是:与逐行迭代相比,是否可以填写包含多行的表格并且花费更少的时间?

我的代码:

#read data
df = pd.read_excel('pre_data.xlsx')
for index,row in df.iterrows():

    X = index + 1

    time.sleep(.3)
    #fill inputs by css_selector
    WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.CSS_SELECTOR,f'#detalle_codigo_articulo{X}'))).send_keys(row['codigo'])

    desc = row['descripcion']+'\n'+row['composicion']
    WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.CSS_SELECTOR,f'#detalle_descripcion{X}'))).send_keys(desc)
    WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.CSS_SELECTOR,f'#detalle_cantidad{X}'))).send_keys(row['cantidad'])
    WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.CSS_SELECTOR,f'#detalle_precio{X}'))).send_keys(str(row['precio']))

    if index != len(df) -1 :
        browser.execute_script('''document.querySelector('#detalles_datos > input[type=button]').click()''')
    UNIDAD = [i for i in browser.find_elements_by_tag_name('option') if i.text.strip() =='unidades']
    UNIDAD[index].click()

如果是点击“Agregar línea descripción”按钮。他在表格中再添加一行。如果您处于循环的最后一圈,则不会添加,因为不允许空行

这是表单视图:

在此处输入图像描述

标签: pythonselenium

解决方案


推荐阅读