首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Selenium打开电子名片

使用Selenium打开电子名片
EN

Stack Overflow用户
提问于 2013-09-06 12:40:33
回答 1查看 256关注 0票数 0

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

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

代码语言:javascript
复制
<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)

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

代码语言:javascript
复制
driver = webdriver.Firefox()
element = driver.find_element_by_link_text("Vcard")
element.click()

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-06 13:44:16

问得好。您可以这样做的方式是,您可以下载vcard到您的项目的文件夹。然后解析vcf文件。我找到了一个很棒的API,它可以做到这一点。这是指向相同ReadingVcard的链接。我将发布一些示例代码来解析vcard。如果您下载该文件并在记事本中打开它,您将获得vcard中的所有信息。我们可以使用api检索所有信息。如果你需要更多的澄清,请告诉我。

代码语言:javascript
复制
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());

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18650018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档