#!/usr/bin/perl use strict; use warnings; use WWW::Mechanize::Firefox; my $mech = WWW::Mechanize::Firefox->new(); $mech->get("http://david.abcc.ncifcrf.gov/summary.jsp"); $mech->click({ xpath => ('//*[@href="Upload a Gene List or Population"]', single => 1), synchronize => 0 }); $mech->form_name('frmManager'); $mech->set_fields( 'pasteBox' => "RRI1, YLR149C, FUN19, YBR285W, ALD3, CUE5, RTC3, AIM3, YDL199C, FMP45, AST2, GIP2, YKL091C, YKL133C, GLG2, SYM1, VHS3, YJR124C, MCH1, MHO1, IKS1, RKM1, STF2, SAC1, ATG7, YAK1", 'Identifier' => "OFFICIAL_GENE_SYMBOL", ); $mech->click ({ xpath => ('//input[@name="rbUploadType" and @value="list"]', single => 1), synchronize => 0 }); $mech->click({xpath => ('//*[@value="Submit List"]', single => 1), synchronize => 0}); $mech->back; my $retries = 100; while ($retries-- and ! $mech->is_visible( xpath => '//*[@value="Functional Annotation Clustering"]' )) { sleep 1; }; die "Timeout" unless $retries; $mech->click({xpath => ('//*[@value="Functional Annotation Clustering"]', single => 1), synchronize => 0}); $mech->get("http://david.abcc.ncifcrf.gov/term2term.jsp?annot=52,9,79,85,25,32,39,3,47,45,63,76¤tList=1");