繁体   English   中英

如何使用Selenium WebDriver单击或选择Python中输入下拉框的第一个元素(值)

[英]how to click or select on very first element(value) of input dropdown box in python using selenium webdriver

我是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应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM