在python:splinter中,我如何才能.click()获得未经认可的linkedin技能?

时间:2015-02-11 23:50:22

标签: python splinter

之前的研究

我已经阅读了分裂帮助文档并搜索了Stack Overflow并花了大约4个小时尝试各种想法,主要是使用dir()和firefox的“inspect element”功能。没有成功。

问题

我正在努力弄清楚如何在Linkedin中自动支持我的关系技能,将交互限制为尚未认可的技能。对于人眼来说,这种技能是以灰色交叉呈现的,而蓝色交叉则表示该技能已被认可。

enter image description here

1 个答案:

答案 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