尝试从此网站获取搜索栏ID:http://www.pexels.com
browser = webdriver.Chrome(executable_path="C:\\Users\\James\\Documents\\PythonScripts\\chromedriver.exe")
url = "https://www.pexels.com"
browser.get(url)
browser.maximize_window()
search_bar = browser.find_element_by_id("//input[@id='search__input']")
search_bar.send_keys("sky")
search_button.click()
然而,这是不正确的,我不知道如何让搜索工作。第一次使用硒所以所有的帮助表示赞赏!
答案 0 :(得分:2)
您要搜索的代码中没有id属性。您可以改用css选择器。这是一个示例代码段:
search_bar = driver.find_element_by_css_selector("input[placeholder='Search for free photos…']");
search_bar.send_keys("sky")
search_bar.send_keys(Keys.RETURN)
上面的代码片段会在搜索栏中插入“天空”并点击“输入”按钮。
答案 1 :(得分:1)
Locating Elements给出了如何使用Selenium定位元素的解释。
您要选择的元素在DOM中如下所示:
<input required="required" autofocus="" class="search__input" type="search" placeholder="Search for free photos…" name="s">
由于未指定ID,因此无法使用find_element_by_id
。
对我来说这很有效:
search_bar = driver.find_element_by_xpath('/html/body/header[2]/div/section/form/input')
search_bar.send_keys("sky")
search_bar.send_keys(Keys.RETURN)
对于选择,您还可以使用类名:
search_bar = driver.find_element_by_class_name("search__input")
或名称标签:
search_bar = driver.find_element_by_name('s')
但是,如果有更多具有相同名称的元素(link)
,则按名称查找元素可能不是一个好主意。