发送密钥后单击第一项

时间:2019-12-04 13:19:56

标签: python selenium

在尝试将密钥发送到自动完成文本框后,我试图单击看到的第一个元素,但似乎无法做到这一点

我尝试过

<food>

并尝试过

page_link = 'http://beta.compuboxdata.com/fighter'
chromedriver = 'C:\\Users\\User\\Downloads\\chromedriver'
cdriver = webdriver.Chrome(chromedriver)
cdriver.get(page_link)
elem = cdriver.find_element_by_id('s2id_autogen1')
elem.send_keys('Deontay Wilder').click()

在发送了模拟点击第一项但无济于事的键之后

2 个答案:

答案 0 :(得分:0)

看起来您可以只按方式选择第一个结果:

elem.send_keys('Deontay Wilder')
elem.send_keys('\ue004')
elem.submit()

答案 1 :(得分:0)

有两个问题:

  • elem.send_keys('Deontay Wilder').click()上,send_keys()返回None时,不能在其上使用click()

  • 第一个选项类是'select2-result-label',而不是's2id_autogen1_search'

您还应该最大化窗口并使用WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

cdriver = webdriver.Chrome(chromedriver)
cdriver.maximize_window()
cdriver.get('http://beta.compuboxdata.com/fighter')

wait = WebDriverWait(cdriver, 10)
wait.until(EC.visibility_of_element_located((By.ID, 's2id_autogen1'))).send_keys('Deontay Wilder')
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'select2-result-label'))).click()