我正在尝试打开一个使用Selenium的vcard。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)B/c的javascript中,我选择使用Selenium打开链接:
driver = webdriver.Firefox()
element = driver.find_element_by_link_text("Vcard")
element.click()当我运行上面的代码时,我得到一个弹出窗口(来自outlook),它询问我要将文本保存到哪里。
我正在尝试找到一种方法来打开链接作为纯文本。有没有办法做到这一点?
发布于 2013-09-06 13:44:16
问得好。您可以这样做的方式是,您可以下载vcard到您的项目的文件夹。然后解析vcf文件。我找到了一个很棒的API,它可以做到这一点。这是指向相同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());
}https://stackoverflow.com/questions/18650018
复制相似问题