我是python网页抓取的初学者,并试图使网站自动化。在我要抓取的网站上有一个搜索过滤器,我正在对输入框下拉标签应用过滤器。在下拉框中,
我写下国家/地区名称,所有国家/地区都会相应地出现,但我无法选择或单击下拉框中作为值出现的第一个国家/地区。我也应用了一些代码,但我的脚本失败并终止。
下面是为了更好地理解的图片。 在此处输入图像描述
我还应用了一些代码,请检查以下内容
p_location='united states'
browser.find_by_xpath("//label[contains(.,'Geography')]").first.click()
actions_wait_time = randint(15, 30)
time.sleep(actions_wait_time)
loc_input = browser.find_by_xpath("//input[@placeholder='Add locations']")
loc_input.type(p_location)
actions_wait_time = randint(15, 30)
time.sleep(actions_wait_time)
loc_input.type(Keys.TAB)
time.sleep(3)
loc_input.type(Keys.RETURN)
我想从下拉列表中选择第一个值。请帮忙
如果不看到页面的 DOM,就不可能想出确切的代码,但是有一件事是显而易见的:你不应该使用 time.sleep 函数,因为它是某种形式的性能反模式。
您应该选择显式等待,例如:
loc_input = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//input[@placeholder='Add locations']")))
first_element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//xpath/for/the/first/element/in/the/dropdown")))
first_element.click()
详细信息:如何使用 Selenium 使用 AJAX 技术测试 Web 应用程序