如何用Selenium从同class标签中定位LinkedIn职位板块链接
解决LinkedIn职位板块定位问题
你的问题出在find_element会返回第一个匹配到的元素,而人脉板块的导航标签刚好在职位标签之前,所以被优先选中了。可以通过以下几种更精准的定位方式解决:
方法1:通过标签文本定位
利用职位标签的专属文本(中文为「职位」,英文为「Jobs」)来筛选,确保定位到正确的元素:
# 中文界面 jobs_sec = driver.find_element("xpath", "//a[@class='app-aware-link global-nav__primary-link' and text()='职位']") jobs_sec.click() # 英文界面 jobs_sec = driver.find_element("xpath", "//a[@class='app-aware-link global-nav__primary-link' and text()='Jobs']") jobs_sec.click()
方法2:通过href属性关键词定位
LinkedIn职位板块的链接href必然包含/jobs/路径,用这个特征来定位更稳定(不受界面语言影响):
jobs_sec = driver.find_element("xpath", "//a[@class='app-aware-link global-nav__primary-link' and contains(@href, '/jobs/')]") jobs_sec.click()
方法3:通过索引定位(不推荐,易受页面布局变更影响)
如果职位标签是导航栏中的第2个匹配元素(假设人脉是第1个),可以用索引指定:
jobs_sec = driver.find_element("xpath", "(//a[@class='app-aware-link global-nav__primary-link'])[2]") jobs_sec.click()
推荐优先使用方法2,因为它不依赖界面语言,且LinkedIn的路径规则相对稳定,不容易因页面小改版失效。
内容的提问来源于stack exchange,提问作者hasangzc
相关产品推荐
相关产品推荐

