如何通过CLASS_NAME获取LinkedIn职位页面的datetime属性值
如何通过CLASS_NAME关联获取LinkedIn职位的datetime属性值
你用By.CLASS_NAME定位的是class为occludable-update的<li>元素,但datetime属性并不属于这个li元素,而是属于它内部嵌套的<time>标签。所以直接在li元素上调用get_attribute("datetime")自然返回空值,而text能拿到内容是因为li包含了time标签的显示文本。
以下是几种可行的解决方案:
方案1:定位li后,在其内部查找time元素
先定位目标li,再通过该元素的子元素定位找到time标签,进而获取datetime属性:
# 先定位所有class为occludable-update的li元素 li_elements = browser.find_elements(By.CLASS_NAME, "occludable-update") # 在指定索引的li内部查找time标签 time_element = li_elements[index].find_element(By.TAG_NAME, "time") # 获取datetime属性值 datetime_value = time_element.get_attribute("datetime") print(datetime_value) # 输出示例:'2022-09-20'
方案2:直接用CSS_SELECTOR组合类名和time标签
一步到位定位到li内部的time标签,无需分两步操作:
time_elements = browser.find_elements(By.CSS_SELECTOR, ".occludable-update time") datetime_value = time_elements[index].get_attribute("datetime")
方案3:用XPATH结合类名定位
如果偏好使用XPATH,也可以通过li的class属性定位其内部的time标签:
time_elements = browser.find_elements(By.XPATH, "//li[@class='occludable-update']//time") datetime_value = time_elements[index].get_attribute("datetime")
内容的提问来源于stack exchange,提问作者michal_levin
相关产品推荐
相关产品推荐

