之前的研究
我已经阅读了分裂帮助文档并搜索了Stack Overflow并花了大约4个小时尝试各种想法,主要是使用dir()和firefox的“inspect element”功能。没有成功。
问题
我正在努力弄清楚如何在Linkedin中自动支持我的关系技能,将交互限制为尚未认可的技能。对于人眼来说,这种技能是以灰色交叉呈现的,而蓝色交叉则表示该技能已被认可。
答案 0 :(得分:0)
您需要.click()
在给定技能的<a class="endorse-button" role="button" href="javascript:void(0)">
元素上。
您可以通过检查按钮元素(上面提到的)的父元素中是否有“endorsable”来class="endorse-item has-endorsements endorsable"
来过滤尚未认可的技能。具体来说:<li class="endorse-item has-endorsements endorsable" data-endorsed-item-name="Molecular Biology">
。
字符串“endorsable”是将未经认可的技能与背书技能区分开来的,例如,已经认可的技能显示为:<li class="endorse-item has-endorsements endorsed-by-viewer" data-endorsed-item-name="genetics">
;而不是“endorsable”你有字符串“endorsed-by-viewer”。
过滤所需的代码,然后点击可支持的技能:
##############################################################
# Searches for the "endorse skills" buttons and iteratively clicks them...
##############################################################
list_of_skills = browser.find_by_id("profile-skills")[0].find_by_css("li")
for skill in list_of_skills:
if skill.has_class("endorse-item has-endorsements endorsable"):
# ...this skill can be endorsed
button_and_other = skill.find_by_css("div")[0].find_by_css("a") # there are two elements that match "a": [0] list of endorsers, [1] the endorse button
for css in button_and_other:
if css.has_class("endorse-button"): # ..if the element has the class: "endorse-button" we click it
css.click()
else:
# ...this skill is already endorsed
pass