我在试图弄清楚发生了什么时感到非常沮丧。我的代码上周运行正常,但无论出于何种原因,我都没有再得到任何结果。在网站上搜索 css 选择器“h3.one”时,我收到一条超时消息。我的代码应该找到所有具有该 css 选择器的元素,并从这些元素中返回显示的元素。
我需要帮助,尤其是在隐式等待方面
这是我的代码:
browser = webdriver.Firefox()
browser.get('https://www.voilanorbert.com/')
inputElement = browser.find_element_by_id("form-search-name")
inputElement.send_keys(leadslist[i][0])
inputElement = browser.find_element_by_id("form-search-domain")
inputElement.send_keys(leadslist[i][1])
searchbutton = browser.find_element_by_name("search")
searchbutton.click()
wait = WebDriverWait(browser, 20)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h3.one")))
h3s = browser.find_elements_by_css_selector('h3.one')
h3 = next(element for element in h3s if element.is_displayed())
result = h3.text
print (result)
打印的目的只是为了查看正在提取的内容/确保它确实在执行所需的操作。
最佳答案
还有一个带有 class="one"
的 h3
元素,它实际上是不可见的。这个元素把事情搞砸了。
要么让你的选择器特定于“成功”容器(对我有用):
div#result-success h3.one
或者等待 results
block 出现:
div.results
关于python - Selenium Extraction…需要提取CSS Selector定位的元素的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29352953/