Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 硒提取&x2026;需要提取CSS选择器定位的元素的文本_Python_Html_Css_Selenium_Selenium Webdriver - Fatal编程技术网

Python 硒提取&x2026;需要提取CSS选择器定位的元素的文本

Python 硒提取&x2026;需要提取CSS选择器定位的元素的文本,python,html,css,selenium,selenium-webdriver,Python,Html,Css,Selenium,Selenium Webdriver,我正在经历一段非常令人沮丧的时间,试图弄清楚到底发生了什么。我的代码上周还在运行,但不管出于什么原因,我再也得不到任何结果了。我在网站上搜索css选择器“h3.one”时收到一条超时消息。我的代码应该使用css选择器查找所有元素,并在这些元素中返回显示的元素 我需要帮助,尤其是在隐性等待方面 这是我的密码: browser = webdriver.Firefox() browser.get('https://www.voilanorbert.com/') inputElement = brows

我正在经历一段非常令人沮丧的时间,试图弄清楚到底发生了什么。我的代码上周还在运行,但不管出于什么原因,我再也得不到任何结果了。我在网站上搜索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)

打印仅用于查看正在提取的内容/确保它实际上正在执行所需的操作。

还有另一个
h3
元素,带有
class=“one”
,它实际上是不可见的。这个元素把事情搞砸了

或者使选择器特定于“成功”容器(适用于我):

或等待
结果
块出现:

div.results

如果它是无形的,为什么它会把事情搞砸呢?上面的代码不是只查找class=“one”的可见h3元素吗?我不能使选择器特定于“success”容器,因为结果并不总是“success”…您可以看到它可能是“result error h3.one”、“result fail h3.one”、“result catchall h3.one”或“result success h3.one”你必须非常特别地使用硒。没有歧义<代码>:)@ohbrobig看起来你做错了什么。您应该将
wait.until(位于的元素的可见性)((By.CSS\u选择器,“h3.one”))
替换为
wait.until(位于的元素的可见性)((By.CSS\u选择器,“div.results”))
。它现在可以工作了。我如何让它与Chrome一起工作?我得到一个“StopIteration”错误,它只针对chrome。。。
div.results