硒没有得到元素的文本

时间:2018-07-23 01:03:33

标签: python python-3.x selenium selenium-webdriver xpath

我正试图通过我的本地whois来获得网站所有者:

link = "ebdicorp.com.br"
service = service.Service('C:\Selenium\chromedriver.exe')
service.start()
capabilities = {'chrome.binary': 'C:\Selenium\chromedriver.exe'}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('https://registro.br/2/whois?qr=&c');
time.sleep(5)

input_site = driver.find_element_by_id("whois")
input_site.send_keys(link)
driver.find_element_by_id("captchaBtn").click()
company = driver.find_element_by_class_name("col-md-9").text

print(company)

driver.quit()

问题是:我得到了

company = driver.find_element_by_class_name("col-md-9")

返回<selenium.webdriver.remote.webelement.WebElement (session="eae9915a3cc3f2f4690eec4a0019982d", element="0.5670714519595477-1")>

但是当我尝试使用.text时没有文本。我在哪里弄糟?

谢谢!

2 个答案:

答案 0 :(得分:2)

col-md-9中有20个元素。您得到的第一个没有文本。您可以使用xpath通过文本找到要查找的行,然后从中获取值。

例如,对于“标题”行,请使用

driver.find_element_by_xpath("//*[label='Titular:']/following-sibling::*[1]").text

哪个会给你Studio Crazy Suporte S/C Ltda Me

答案 1 :(得分:1)

根据网站https://registro.br/2/whois?qr=&c,一旦您用文本 ebdicorp.com.br 搜索以提取任何值,就可以编写一个函数,该函数将使用<label>名称如下:

def extract_value(myString):
        driver.find_element_by_xpath("//label[.='" + myString + "']//following::div[1]").get_attribute("innerHTML")

现在,您可以使用任何extract_value()文本来调用函数<label>,以提取其值,如下所示:

extract_value("Titular:")
#or
extract_value("Contato do Titular:")
#or
extract_value("Contato Administrativo:")