Python selenium send_keys с массивом слов - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь получить информацию с сайта с определенным набором ключевых слов (хранящихся в массиве) с цепочками действий python селена. Если я передаю свой массив send_keys, он возвращает ошибку: «из недопустимого аргумента:« значение »должно быть одной точкой кода Unicode». Я попробовал передать в send_keys всего одно слово, и он работает, но мне нужно сделать это с помощью массива ключевых слов.

ActionChains может обрабатывать ввод только отдельных слов, а не массивов?

keys = ['media', 'image', 'video']

try:
  for key in keys:
    searchbox = driver.find_element_by_id("nav-search") 
    actions = ActionChains(driver)
    actions.move_to_element(searchbox)
    actions.click()
    actions.perform()
    actions.send_keys(keys)
    actions.send_keys(Keys.RETURN)
    actions.perform()

Любая помощь будет принята с благодарностью!

1 Ответ

3 голосов
/ 04 августа 2020

В вашем коде есть орфографическая ошибка

ваш код:

keys = ['media', 'image', 'video']

try:
  for key in keys:
    searchbox = driver.find_element_by_id("nav-search") 
    actions = ActionChains(driver)
    actions.move_to_element(searchbox)
    actions.click()
    actions.perform()
    actions.send_keys(keys)
    actions.send_keys(Keys.RETURN)
    actions.perform()

исправленный:

keys = ['media', 'image', 'video']

try:
  for key in keys:
    searchbox = driver.find_element_by_id("nav-search") 
    actions = ActionChains(driver)
    actions.move_to_element(searchbox)
    actions.click()
    actions.perform()
    #actions.send_keys(keys)
    actions.send_keys(key)
    actions.send_keys(key.RETURN)
    actions.perform()
...