[from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://youtube.com')
searchbox = driver.find_element("xpath",'//*[@id="search"]')
searchbox.send_keys("Akram Khan")
searchButton = driver.find_element("xpath",'//*[@id="search-icon-legacy"]')
searchButton.click()]
(https://i.stack.imgur.com/egHm1.png)
- 函数[searchbox. send_keys("Akram Khan")]必须在YouTUbe的搜索框中写入所提到的文本("Akram Khan")。**
3条答案
按热度按时间slwdgvem1#
所以问题是,当您第一次尝试获取当前版本的searchbox元素时,它搜索的是id='search'元素的第一个匹配项,而该元素之前没有连接到搜索框(因此,对该元素的send_keys()不起作用)。你可以通过指定当前代码中的标记来获得你想要的特定元素,方法是执行以下操作(因为input元素是你想要发送响应的目标):
wa7juj8i2#
send_keys()
方法无法按预期将文本写入搜索框的原因可能有多种。您可以尝试以下几种方法:1.请确保您要写入的元素确实是搜索框。您可以在浏览器的开发者工具中检查该元素,并将其与您要写入的元素进行比较。
1.请确保该元素未被禁用或为只读。如果该元素被禁用或为只读,则
send_keys()
方法将无法对其进行写入。1.请确保该元素可见并且未被其他元素遮挡。如果元素在页面上不可见,则
send_keys()
方法将无法写入该元素。1.请确保没有遇到任何同步问题。如果页面仍在加载或搜索框尚未交互,则
send_keys()
方法可能会失败。在这种情况下,可以尝试使用selenium.webdriver.common.by
模块中的WebDriverWait类等待元素变为交互,然后再尝试写入元素。dzhpxtsq3#
@id ='search'正在反映到元素列表,因此请使用唯一元素,如@name ='search-query'