如何打开与硒的特定链接?

时间:2019-05-10 21:43:53

标签: python selenium

我是Web抓取的新手,我尝试打开与硒的链接:

在Google Chrome上,我使用我要打开的按钮进行检查,并获得以下信息:

<a href="/c#candidates?id=a6b0e325a499&amp;candidateFilter=4af15d8991a8" data-tn-link="true" data-tn-element="view-unread-candidates"><span class="jobs-u-font--bold">(4 awaiting review)</span></a>

我尝试获取所有具有相同结构的链接并打开它,以便我可以访问其数据

enter image description here enter image description here

(我有几个按钮具有相同的结构,但我需要看到的href不同)

Properties下,我也可以看到a的相同按钮。

但是我想比只使用上面提到的那些特定链接更精确:

elements = driver.find_elements_by_tag_name("a")

有人可以建议吗?

4 个答案:

答案 0 :(得分:2)

您可以使用//a[@data-tn-element = 'view-unread-candidates'],它将列出所有未读的候选者。

如果您想通过候选人ID来确定特定候选人,请使用以下xpath。并设置带有所需ID的候选人ID。

candidateId = 'a6b0e325a499'
"//a[@data-tn-element = 'view-unread-candidates'][contains(@href,'id=" + candidateId + "')]"

答案 1 :(得分:1)

我会用

elem = driver.find_element_by_class_name("jobs-u-font--bold")

要获得<span>,因为这似乎是一个唯一的类名(尽管我不能确定您的帖子中有什么名字)。然后,您可以通过以下方式达到<a>级别

a_elem = elem.find_element_by_xpath("..")

然后您可以a_elem.click()或尝试做的任何事情。

答案 2 :(得分:1)

要访问定位标记,您可以使用属性为data-tn-element="view-unread-candidates"的css选择器,我相信所有定位标记都应该相同。

elements=driver.find_elements_by_css_selector('a[data-tn-element="view-unread-candidates"]')
for ele in elements:
    print(ele.get_attribute("href"))

或者,如果您想使用子元素然后想要获取父标记,请尝试使用xpath编写以下代码。

elements=driver.find_elements_by_xpath("//span[@class='jobs-u-font--bold']")
for ele in elements:
    print(ele.find_element_by_xpath("./parent::a").get_attribute('href'))

答案 3 :(得分:0)

我会使用:

列表元素= driver.findElements(By.xpath(“ // a [@ data-tn-element ='view-unread-candidates']”)))

    Iterator<WebElement> iter = elements.iterator();

    while (iter.hasNext()) {
        WebElement item = iter.next();
        String href = item.getAttribute("href");
        System.out.println("href is " + href);
    }
}

如果您要单击具有特定href的链接,则可以在上述代码中获取href后放置if条件。当满足该条件时,单击元素。