python - Selenium Extraction…需要提取CSS Selector定位的元素的文本

标签 python html css selenium selenium-webdriver

我在试图弄清楚发生了什么时感到非常沮丧。我的代码上周运行正常,但无论出于何种原因,我都没有再得到任何结果。在网站上搜索 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/

相关文章:

html - 如何在不将其设置为背景的情况下将图像垂直和水平居中?

用于识别移动设备的 JavaScript IF 函数

css - 多行截断在 Chrome 中不显示 '...'

python - 同时连接 linux 和 windows 的路径

python - 从 pandas 数据框中提取每 4 行的第一个值以创建一个新的数据框

python - 我们可以从没有实例化的类中调用方法吗

html - 在 Rails spree 中将链接设为按钮

python - 为什么我收到 Typeerror : 'int' object not iterable

jquery - ipad/iphone 滑动

text-decorations - 从链接中删除文本装饰