尝试访问嵌套的某些文本属性。大多数元素都没有遇到麻烦,但只是无法获得某些元素。
我正在尝试设置:一个变量= Optomi,另一个变量=美国密歇根州底特律(尽管我觉得一旦有了第一个变量,我就可以轻松获得第二个变量)
<a data-control-name="company_link" href="/company/optomi/life/" id="ember2228" class="jobs-details-top-card__company-url ember-view"> Optomi </a>
我正在尝试提取文本值“ Optomi”。
我尝试过:
cname = self.driver.find_elements_by_xpath("//a[@class='jobs-details-top-card__company-url ember-view']/a")
print(cname)
和
cname = self.driver.find_elements_by_css_selector(
"div.jobs-details-top-card__company-info t-14 t-black--light t-normal mt1")
print(cname)
print(cname.get_attribute("text"))
任何提示?
尝试使用CC7052所说的内容:
cname = self.driver.find_element_by_xpath("//a[@class='jobs-details-top-ard__company-url ember-view']").text
然后可能使用.split获取底特律
cname.split(',')[0]
要拉出文本Optomi,您需要为visibility_of_element_located()
引入WebDriverWait,并且可以使用以下任何一个Locator Strategies:
使用CSS_SELECTOR
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.jobs-details-top-card__company-url.ember-view[data-control-name='company_link'][href*='optomi']"))).text)
使用XPATH
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='jobs-details-top-card__company-url ember-view' and @data-control-name='company_link'][contains(@href,'optomi')]"))).text)
注:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC