Javascript 使用Selenium打开Vcard

Javascript 使用Selenium打开Vcard,javascript,python,selenium,vcf-vcard,Javascript,Python,Selenium,Vcf Vcard,我正在尝试使用Selenium打开vcard。vcard使用JavaScript命令而不是传统的链接: 当我运行上面的代码时,我会得到一个弹出窗口(来自outlook),询问我想将文本保存在哪里 我正试图找到一种方法来打开纯文本链接。有办法做到这一点吗?好问题。你可以这样做,你可以下载到你的项目文件夹vcard。然后解析vcf文件。找到了一个很好的API可以做到这一点。这里是相同的链接。我将发布一些示例代码以通过vcard进行解析。如果您下载文件并在记事本中打开,您将从vcard获得所有信息。

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

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


我正试图找到一种方法来打开纯文本链接。有办法做到这一点吗?

好问题。你可以这样做,你可以下载到你的项目文件夹vcard。然后解析vcf文件。找到了一个很好的API可以做到这一点。这里是相同的链接。我将发布一些示例代码以通过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());

    }

嘿,维尼,谢谢你的快速回复。我的问题不是解析vcard,而是获取vcard的实际过程。B/c的弹出窗口,我无法得到文本。有没有办法绕过弹出窗口,只获取Selenium中的文本(最好使用driver.page_source)?您使用的浏览器是什么?如果是firefox,那么您可以通过java代码覆盖设置,这样文件就可以使用firefox自动下载到指定位置,而无需弹出.Yup。有没有办法用Python来代替Java?@NeilAggarwal对不起,伙计,我更喜欢Java,对Python不太感兴趣。但是设置是针对firefox的,而不是解析java或python。这应该对你有帮助
driver = webdriver.Firefox()
element = driver.find_element_by_link_text("Vcard")
element.click()
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());

    }