【发布时间】:2021-07-29 14:47:10
【问题描述】:
我一直试图理解为什么以下代码不起作用。我打算将一个键发送到另一个 Web 选项卡上的搜索输入,然后按一个按钮。在论坛中阅读了类似的questions 之后,我认为该元素可能被隐藏或包裹。如何找到这个?有时元素在列表中并且必须通过索引来访问。我研究过的例子不是这样的。任何帮助将不胜感激。
from selenium import webdriver
from selenium.common.exceptions import *
webdriver_path = "C:/Users/escob/Documents/Projects/WebScrapingExample/chromedriver.exe"
magpie_url = 'https://www.musicmagpie.co.uk/start-selling/'
search_item = "9781912047734"
options = webdriver.ChromeOptions()
browser = webdriver.Chrome (webdriver_path, options = options)
browser.get(magpie_url)
sell_tab = browser.find_element_by_id('pills-media-tab')
sell_tab.click()
##I have tried the following code with no luck
#search_bar = browser.find_elements_by_name('searchString')
#search_bar = browser.find_elements_by_class_name('form-input')
search_bar = browser.find_element_by_xpath("//input[@name='searchString']")
#I am getting elements in a list, the examples I have seen do not need indexing
search_bar[0].send_keys(search_item)
button = browser.find_element_by_class_name(submit-media-search) #will this work?
button[0].click() #again in a list?
非常感谢 Seleniumista 初学者的帮助。
【问题讨论】:
-
我的回答能够解决您问题中的用例。请在您测试我的代码后告诉我。
标签: python list selenium-webdriver