0

我正在尝试使用 Selenium 打开电子卡。vcard 使用 javacript 命令而不是传统的链接:

http://www.allenmatkins.com/Professionals/Ahern-William/Biography.aspx

<a id="ctl00_phContent_content_0_hlVcard" href="javascript:__doPostBack('ctl00$phContent$content_0$hlVcard','')">Vcard</a>

**(from http://www.allenmatkins.com/Professionals/Ahern-William/Biography.aspx)

javascript的B/c,我选择使用Selenium打开链接:

driver = webdriver.Firefox()
element = driver.find_element_by_link_text("Vcard")
element.click()

当我运行上面的代码时,我得到一个弹出窗口(来自 Outlook),询问我要将文本保存在哪里。

我正在尝试找到一种方法以纯文本形式打开链接。有没有办法做到这一点?

4

1 回答 1

1

好问题。您可以执行此操作的方法是将 vcard 下载到项目的文件夹中。然后通过vcf文件解析。找到了一个很棒的 AP​​I 可以做到这一点。这是同一个ReadingVcard的链接。我将发布一些示例代码来解析 vcard。如果您下载文件并在记事本中打开它,您将从 vcard 中获得所有信息。我们可以使用 api 检索所有信息。如果您需要更多说明,请告诉我。

public static void main(String[] args) throws FileNotFoundException, IOException 
    {
        File file = new File("William-R.-Ahern.vcf");
        VCard vcard = Ezvcard.parse(file).first();
        System.out.println(vcard.getFormattedName().getValue());
        System.out.println(vcard.getEmails().get(0).getValue());
        System.out.println(vcard.getTitles().get(0).getValue());
        System.out.println(vcard.getTelephoneNumbers().get(0).getText());
        System.out.println(vcard.getTelephoneNumbers().get(1).getText());
        System.out.println(vcard.getAddresses().get(0).getStreetAddress());
        System.out.println(vcard.getAddresses().get(0).getLocality());
        System.out.println(vcard.getAddresses().get(0).getRegion());
        System.out.println(vcard.getAddresses().get(0).getPostalCode());
        System.out.println(vcard.getAddresses().get(0).getCountry());

    }
于 2013-09-06T05:44:16.223 回答