我遇到了硒的问题。我想用类" one"。
提取可见元素的文本这是html:
<div id="result-success" class="text-center displayed">
<h3 class="one">Success</h3>
<p class="two">Yes! I've found them!</p>
<div class="list-items"> <a href="mailto:ryan.johnson@target.com" title="Click here to directly send an email" class="label label-success three">
这是4种可能性之一。其他可能性是不可见的,但所有人都有班级&#34;一个&#34;在他们中。那么我该如何只选择这个元素呢?
我必须使用jquery吗?我想在这个课程中提取文本,所以文本&#34;成功&#34;以及&#34; list-items&#34;中的电子邮件;类。
我该怎么做?我不认为该网站是用jquery编写的。我的代码目前在python中。
这是我的代码:
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, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h3.one")))
msg=browser.execute_script("$('.one:visible').text()")
print(msg)
答案 0 :(得分:0)
我们的想法是让所有h3
元素与类one
和过滤可见的。然后使用following-sibling
从位于以下a
兄弟中的div
标记处获取电子邮件:
h3s = driver.find_elements_by_css_selector('h3.one')
h3 = next(element for element in h3s if element.is_displayed())
a = h3.find_element_by_xpath('following-sibling::div/a')
print h3.text, a.get_attribute('href')
演示:
>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
>>> driver.get('http://www.voilanorbert.com')
>>> driver.find_element_by_id("form-search-name").send_keys('John Smith')
>>> driver.find_element_by_id("form-search-domain").send_keys('gmail.com')
>>> driver.find_element_by_name("search").click()
>>>
>>> h3s = driver.find_elements_by_css_selector('h3.one')
>>> h3 = next(element for element in h3s if element.is_displayed())
>>> a = h3.find_element_by_xpath('following-sibling::div/a')
>>>
>>> h3.text, a.get_attribute('href')
('SUCCESS', 'mailto:smith.john@gmail.com')
答案 1 :(得分:-1)
如果您想要从网络元素中提取文字,则必须使用get_attribute方法发送&#39; textContent&#39;(适用于Firefox,Google Chrome)或内部文字&#39;(适用于IE)参数。 我在C#中使用它,它工作正常。
答案 2 :(得分:-4)
以下CSS选择器应该有效:
.displayed > h3.one
*编辑:问题是:
这是4种可能性之一。其他可能性是不可见的,但所有人都有班级&#34;一个&#34;在他们中。那么我该如何只选择这个元素呢?
上面的CSS选择器将选择显示的元素,因为父元素只有一个元素具有显示的类。您可以使用带有firepath的任何输入criterea来测试它。