find_element_by_id()。send_keys()在IE中一次一个字符地发送一个字符但不是整个字符串

时间:2017-02-27 05:05:03

标签: python selenium internet-explorer pycharm

我想发送字符串" abcd"一次进入搜索框,然后想要点击搜索按钮,但find_element_by_id().send_keys()逐个字符地发送并花费更多时间来搜索字符串。

from openpyxl import load_workbook

from selenium import webdriver

path = raw_input()

def retrieve(path):

 wb = load_workbook(path)
    ws = wb.active

    alist, blist, clist, dlist   = []
    for row in ws.iter_rows('A{}:A{}'.format(ws.min_row,ws.max_row)):
        for cell in row:
            alist.append(cell.value)
    for row in ws.iter_rows('B{}:B{}'.format(ws.min_row,ws.max_row)):
        for cell in row:
            blist.append(cell.value)

    for row in ws.iter_rows('C{}:C{}'.format(ws.min_row,ws.max_row)):
        for cell in row:
            clist.append(cell.value)

    for row in ws.iter_rows('D{}:D{}'.format(ws.min_row,ws.max_row)):
        for cell in row:
            dlist.append(cell.value)
    driver = webdriver.Ie()
    driver.get("https://www.google.co.in/")
    for i in range(0,alist.__len__()):
        driver.find_element_by_id("lst-ib").send_keys(alist[i])
        driver.find_element_by_id("_fZl").submit()
retrieve(path)

我的Excel工作表将有4列,我需要从A1单元格中获取字符串并在我的应用程序中的搜索框中搜索,然后从b1,c1,d1单元格填充数据,然后搜索A2单元格... ..

你可以告诉我如何一次发送整个字符串。 提前致谢

1 个答案:

答案 0 :(得分:0)

请尝试以下方法 由于你的示例代码没有显示B,C,D值的含义,我想加入它。

# Get Data from all rows
for row in ws.rows:
    A_value = row[:1][0].value
    # Join columen B,C,D values without spacing
    BCD_value = ''.join(cell.value for cell in row[1:5])

    print('A_value=%s, BCD_value=%s' % (A_value, BCD_value))
    # Do your work with this rows Data
    # ...
    driver.find_element_by_id("lst-ib").send_keys( A_value )

使用Python测试:3.4.2 - openpyxl:2.4.1
如果这对您有用,请回来并将您的问题标记为已回答,或者为什么不对其进行评论。