Merge pull request #5248 from solgenomics/topic/batch_update_trials
[sgn.git] / t / selenium2 / solgs / pca.t
blobe53a545c60a2c1f23dabe12334c7f11446cd9cfd
2 use strict;
4 use lib 't/lib';
6 use File::Spec::Functions qw / catfile catdir/;
7 use Test::More;
8 use SGN::Test::WWW::WebDriver;
9 use SGN::Test::Fixture;
10 use SGN::Test::solGSData;
13 my $d = SGN::Test::WWW::WebDriver->new();
14 my $f = SGN::Test::Fixture->new();
15 my $solgs_data = SGN::Test::solGSData->new(
16     {
17         'fixture'                => $f,
18         'accessions_list_subset' => 60,
19         'plots_list_subset'      => 60
20     }
23 my $cache_dir    = $solgs_data->site_cluster_shared_dir();
24 my $protocol_dir = $solgs_data->default_protocol_dir();
25 my $pca_dir  = catdir( $protocol_dir, 'pca' );
26 my $log_dir  = catdir( $protocol_dir, 'log' );
28 # my $cache_dir = $solgs_data->site_cluster_shared_dir();
29 print STDERR "\nsite_cluster_shared_dir-- $cache_dir\n";
31 my $accessions_list = $solgs_data->load_accessions_list();
33 # my $accessions_list = $solgs_data->get_list_details('accessions');
34 my $accessions_list_name = $accessions_list->{list_name};
35 my $accessions_list_id   = 'list_' . $accessions_list->{list_id};
36 print STDERR "\naccessions list: $accessions_list_name -- $accessions_list_id\n";
37 my $plots_list = $solgs_data->load_plots_list();
39 # my $plots_list =  $solgs_data->get_list_details('plots');
40 my $plots_list_name = $plots_list->{list_name};
41 my $plots_list_id   = 'list_' . $plots_list->{list_id};
43 print STDERR "\nadding trials list\n";
44 my $trials_list = $solgs_data->load_trials_list();
46 # my $trials_list =  $solgs_data->get_list_details('trials');
47 my $trials_list_name = $trials_list->{list_name};
48 my $trials_list_id   = 'list_' . $trials_list->{list_id};
49 print STDERR "\nadding trials dataset\n";
51 # my $trials_dt =  $solgs_data->get_dataset_details('trials');
52 my $trials_dt      = $solgs_data->load_trials_dataset();
53 my $trials_dt_name = $trials_dt->{dataset_name};
54 my $trials_dt_id   = 'dataset_' . $trials_dt->{dataset_id};
55 print STDERR "\nadding accessions dataset\n";
57 # my $accessions_dt =  $solgs_data->get_dataset_details('accessions');
58 my $accessions_dt      = $solgs_data->load_accessions_dataset();
59 my $accessions_dt_name = $accessions_dt->{dataset_name};
60 my $accessions_dt_id   = 'dataset_' . $accessions_dt->{dataset_id};
62 print STDERR "\nadding plots dataset\n";
64 # my $plots_dt =  $solgs_data->get_dataset_details('plots');
65 my $plots_dt      = $solgs_data->load_plots_dataset();
66 my $plots_dt_name = $plots_dt->{dataset_name};
67 my $plots_dt_id   = 'dataset_' . $plots_dt->{dataset_id};
69 #$accessions_dt_name = '' . $accessions_dt_name . '';
70 print STDERR "\ntrials dt: $trials_dt_name -- $trials_dt_id\n";
71 print STDERR "\naccessions dt: $accessions_dt_name -- $accessions_dt_id\n";
72 print STDERR "\nplots dt: $plots_dt_name -- $plots_dt_id\n";
74 print STDERR "\ntrials list: $trials_list_name -- $trials_list_id\n";
75 print STDERR "\naccessions list: $accessions_list_name -- $accessions_list_id\n";
76 print STDERR "\nplots list: $plots_list_name -- $plots_list_id\n";
78 `rm -r $cache_dir`;
80 $d->while_logged_in_as("submitter", sub {
82     $d->get_ok('/pca/analysis', 'pca home page');
83     sleep(5);
84     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
85     sleep(2);
86     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run pca')->click();
87     sleep(3);
88     $d->find_element_ok('queue_job', 'id', 'queue pca job')->click();
89     sleep(3);
90     $d->find_element_ok('analysis_name', 'id', 'clones list job name')->send_keys('geno pca job');
91     sleep(2);
92     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
93         sleep(2);
94     $d->find_element_ok('submit_job', 'id', 'submit')->click();
95     sleep(200);
96     $d->find_element_ok('Go back', 'partial_link_text', 'go back to pca pg')->click();
97     sleep(3);
99     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
100     sleep(2);
101     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run pca accessions list (genotype)')->click();
102     sleep(5);
103     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check accessions list geno  pca plot')->click();
104     sleep(5);
106     `rm -r $cache_dir`;
107     $d->driver->refresh();
108     sleep(5);
110     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
111     sleep(2);
112     $d->find_element_ok('//tr[@id="' . $accessions_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
113     sleep(3);
114     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
115     sleep(200);
116     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check accessions list geno  pca plot')->click();
117     sleep(5);
119     $d->driver->refresh();
120     sleep(5);
122     $d->find_element_ok('//tr[@id="' . $plots_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select phenotype')->click();
123     sleep(2);
124     $d->find_element_ok('//tr[@id="' . $plots_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
125     sleep(3);
126     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
127     sleep(240);
128     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials list pheno pca plot')->click();
129     sleep(5);
131     $d->driver->refresh();
132     sleep(5);
134     $d->find_element_ok('//tr[@id="' . $trials_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
135     sleep(2);
136     $d->find_element_ok('//tr[@id="' . $trials_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
137     sleep(3);
138     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
139     sleep(240);
140     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials list geno pca plot')->click();
141     sleep(5);
143    `rm -r $cache_dir`;
144     $d->driver->refresh();
145     sleep(5);
147     $d->find_element_ok('//tr[@id="' . $trials_list_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select genotype')->click();
148     sleep(2);
149     $d->find_element_ok('//tr[@id="' . $trials_list_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
150     sleep(3);
151     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
152     sleep(200);
153     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials list pheno pca plot')->click();
154     sleep(5);
156     `rm -r $cache_dir`;
158     $d->driver->refresh();
159     sleep(5);
161     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
162     sleep(3);
163     $d->find_element_ok('//tr[@id="' . $accessions_dt_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
164     sleep(3);
165     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
166     sleep(200);
167     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check accessions dataset geno pca plot')->click();
168     sleep(5);
170     $d->driver->refresh();
171     sleep(5);
173     $d->find_element_ok('//tr[@id="' . $plots_dt_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select phenotype')->click();
174     sleep(3);
175     $d->find_element_ok('//tr[@id="' . $plots_dt_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
176     sleep(3);
177     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
178     sleep(200);
179     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check plots dataset  pheno pca plot')->click();
180     sleep(5);
182     $d->driver->refresh();
183     sleep(5);
185     $d->find_element_ok('//tr[@id="' . $trials_dt_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
186     sleep(3);
187     $d->find_element_ok('//tr[@id="' . $trials_dt_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
188     sleep(3);
189     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
190     sleep(200);
191     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials dataset geno pca plot')->click();
192     sleep(5);
194     $d->driver->refresh();
195     sleep(5);
197     $d->find_element_ok('//tr[@id="' . $trials_dt_id .'"]//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select phenotype')->click();
198     sleep(3);
199     $d->find_element_ok('//tr[@id="' . $trials_dt_id .'"]//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
200     sleep(3);
201     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
202     sleep(200);
203     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials dataset pheno pca plot')->click();
204     sleep(5);
206     `rm -r $cache_dir`;
208     $d->get_ok('/breeders/trial/139', 'trial detail home page');
209     sleep(10);
211     my $analysis_tools = $d->find_element('Analysis Tools', 'partial_link_text', 'toogle analysis tools');
212     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $analysis_tools);
213     sleep(5);
214     $d->find_element_ok('Analysis Tools', 'partial_link_text', 'toogle analysis')->click();
215     sleep(5);
216     $d->find_element_ok('ANOVA', 'partial_link_text', 'collapse anova')->click();
217     sleep(3);
218     $d->find_element_ok('PCA', 'partial_link_text', 'expand PCA')->click();
219     sleep(3);
220     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select phenotype')->click();
221     sleep(10);
222     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
223     sleep(3);
224     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
225     sleep(200);
226     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trial page pheno pca plot')->click();
227     sleep(5);
229     $d->driver->refresh();
230     sleep(5);
232     my $analysis_tools = $d->find_element('Analysis Tools', 'partial_link_text', 'toogle analysis tools');
233     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $analysis_tools);
234     sleep(5);
235     $d->find_element_ok('Analysis Tools', 'partial_link_text', 'toogle analysis tools')->click();
236     sleep(5);
237     $d->find_element_ok('ANOVA', 'partial_link_text', 'collapse anova')->click();
238     sleep(3);
239     $d->find_element_ok('PCA', 'partial_link_text', 'expand PCA')->click();
240     sleep(3);
241     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
242     sleep(10);
243     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
244     sleep(3);
245     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
246     sleep(200);
247     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check trials page geno pca plot')->click();
248     sleep(5);
250     `rm -r $cache_dir`;
252     $d->get_ok('/solgs', 'solgs homepage');
253     sleep(10);
255     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
256     sleep(5);
257     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
258     sleep(5);
259     $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
260     sleep(5);
261     $d->find_element_ok('queue_job', 'id', 'submit job tr pop')->click();
262     sleep(2);
263     $d->find_element_ok('analysis_name', 'id', 'Test Kasese Tr pop')->send_keys('Test Kasese Tr pop');
264     sleep(2);
265     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
266         sleep(2);
267     $d->find_element_ok('submit_job', 'id', 'submit')->click();
268     sleep(200);
269     $d->find_element_ok('Go back', 'partial_link_text', 'go back to solgs homepage')->click();
270     sleep(3);
272     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
273     sleep(5);
274     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
275     sleep(5);
276     $d->find_element_ok('Kasese', 'partial_link_text', 'create training pop')->click();
277     sleep(15);
279     $d->find_element_ok('dry matter', 'partial_link_text',  'build model')->click();
280     sleep(3);
281     $d->find_element_ok('queue_job', 'id', 'modeling job queueing')->click();
282     sleep(2);
283     $d->find_element_ok('analysis_name', 'id', 'modeling analysis name')->send_keys('Test DMCP model Kasese');
284     sleep(2);
285         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
286     sleep(2);
287     $d->find_element_ok('submit_job', 'id', 'submit')->click();
288     sleep(150);
289     $d->find_element_ok('Go back', 'partial_link_text', 'go back to training pop page')->click();
290     sleep(7);
292     $d->find_element_ok('dry matter', 'partial_link_text',  'build model -- go to model page')->click();
293     sleep(3);
294     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
295     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
296     sleep(5);
297     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
298     sleep(5);
299     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
300     sleep(3);
301     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
302     sleep(200);
303     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check geno pca plot in model page')->click();
304     sleep(5);
306     $d->driver->refresh();
307     sleep(5);
309     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
310     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
311     sleep(3);
312     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select genotype')->click();
313     sleep(5);
314     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
315     sleep(3);
316     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
317     sleep(200);
318     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check pheno pca plot in model page')->click();
319     sleep(5);
321     $d->driver->refresh();
322     sleep(5);
324     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
325     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
326     sleep(2);
327     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('trial2 NaCRRI');
328     sleep(2);
329     $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
330     sleep(10);
331     $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click training pop')->click();
332     sleep(5);
333     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
334     sleep(3);
335     $d->find_element_ok('analysis_name', 'id', ' sel pred analysis name')->send_keys('Test DMCP selection pred Kasese');
336     sleep(3);
337         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
338     sleep(3);
339     $d->find_element_ok('submit_job', 'id', 'submit')->click();
340     sleep(200);
341     $d->find_element_ok('Go back', 'partial_link_text', 'go back to model page')->click();
342     sleep(3);
344     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
345     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
346     sleep(8);
347     $d->find_element_ok('DMCP', 'partial_link_text', 'go to selection pop prediction page')->click();
348     sleep(5);
350     # $d->get_ok('/solgs/selection/141/model/139/trait/70666/gp/1', 'selection prediction page');
351     # sleep(5);
353     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
354     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
355     sleep(5);
356     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
357     sleep(10);
358     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
359     sleep(3);
360     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
361     sleep(200);
362     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check geno pca plot in selection pop page')->click();
363     sleep(5);
365     `rm -r $cache_dir`;
367     $d->get_ok('/solgs', 'solgs homepage');
368     sleep(4);
370     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
371     sleep(2);
372     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
373     sleep(1);
374     $d->find_element_ok('trial_search_box', 'id', 'population search form')->clear();
375     sleep(2);
376     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('nacrri');
377     sleep(5);
378     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
379     sleep(3);
381     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
382     sleep(2);
383     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
384     sleep(2);
385     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
386     sleep(2);
387     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials')->click();
388     sleep(3);
389     $d->find_element_ok('queue_job', 'id', 'submit combine trials job ')->click();
390     sleep(2);
391     $d->find_element_ok('analysis_name', 'id', 'combo trials tr pop')->send_keys('combo trials tr pop');
392     sleep(2);
393     $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
394         sleep(2);
395     $d->find_element_ok('submit_job', 'id', 'submit')->click();
396     sleep(200);
397     $d->find_element_ok('Go back', 'partial_link_text', 'go back to solgs homepage')->click();
398     sleep(3);
401     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('Kasese solgs trial');
402     sleep(2);
403     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
404     sleep(1);
405     $d->find_element_ok('trial_search_box', 'id', 'population search form')->clear();
406     sleep(2);
407     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('nacrri');
408     sleep(5);
409     $d->find_element_ok('search_trial', 'id', 'search for training pop')->click();
410     sleep(5);
412     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="139"]', 'xpath', 'select trial kasese')->click();
413     sleep(3);
414     $d->find_element_ok('//table[@id="searched_trials_table"]//input[@value="141"]', 'xpath', 'select trial nacrri')->click();
415     sleep(3);
416     $d->find_element_ok('select_trials_btn', 'id', 'done selecting')->click();
417     sleep(3);
418     $d->find_element_ok('combine_trait_trials', 'id', 'combine trials -- go to combined trials training pop page')->click();
419     sleep(20);
421     $d->find_element_ok('dry matter', 'partial_link_text',  'build model')->click();
422     sleep(3);
423     $d->find_element_ok('queue_job', 'id', 'no job queueing')->click();
424     sleep(2);
425     $d->find_element_ok('analysis_name', 'id', 'Test DMCP model combo')->send_keys('Test DMCP model combo');
426     sleep(2);
427         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
428     sleep(2);
429     $d->find_element_ok('submit_job', 'id', 'submit')->click();
430     sleep(140);
431     $d->find_element_ok('Go back', 'partial_link_text', 'go back to training pop page')->click();
432     sleep(7);
435     $d->find_element_ok('dry matter', 'partial_link_text',  'build model')->click();
436     sleep(3);
437     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
438     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
439     sleep(5);
440     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
441     sleep(10);
442     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
443     sleep(3);
444     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
445     sleep(200);
446     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check geno pca plot in model page')->click();
447     sleep(5);
449     $d->driver->refresh();
450     sleep(5);
452     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
453     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
454     sleep(5);
455     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Phenotype"]', 'xpath', 'select phenotype')->click();
456     sleep(10);
457     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
458     sleep(3);
459     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
460     sleep(200);
461     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check pheno pca plot in model page')->click();
462     sleep(5);
464     $d->driver->refresh();
465     sleep(5);
467     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
468     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
469     sleep(2);
470     $d->find_element_ok('trial_search_box', 'id', 'population search form')->send_keys('trial2 NaCRRI');
471     sleep(2);
472     $d->find_element_ok('search_selection_pop', 'id', 'search for selection pop')->click();
473     sleep(20);
474     $d->find_element_ok('//table[@id="selection_pops_table"]//*[contains(text(), "Predict")]', 'xpath', 'click sel pop')->click();
475     sleep(5);
476     $d->find_element_ok('queue_job', 'id', 'job queueing')->click();
477     sleep(4);
478     $d->find_element_ok('analysis_name', 'id', 'selection pop prediction analysis name')->send_keys('Test DMCP selection pred nacrri');
479     sleep(4);
480         $d->find_element_ok('user_email', 'id', 'user email')->send_keys('email@email.com');
481     sleep(3);
482     $d->find_element_ok('submit_job', 'id', 'submit')->click();
483     sleep(200);
484     $d->find_element_ok('Go back', 'partial_link_text', 'go back to model page')->click();
485     sleep(5);
487     my $sel_pred = $d->find_element('Predict', 'partial_link_text', 'scroll to selection pred');
488     my $elem = $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-70);", $sel_pred);
489     sleep(8);
490     $d->find_element_ok('DMCP', 'partial_link_text', 'go to selection pop prediction page')->click();
491     sleep(5);
493     # $d->get_ok('/solgs/selection/141/model/139/trait/70666/gp/1', 'selection prediction page');
494     # sleep(5);
496     my $pca = $d->find_element('PCA', 'partial_link_text', 'scroll up');
497     $d->driver->execute_script( "arguments[0].scrollIntoView(true);window.scrollBy(0,-100);", $pca);
498     sleep(5);
499     $d->find_element_ok('//*[starts-with(@id,"pca_data_type_select")]/option[text()="Genotype"]', 'xpath', 'select genotype')->click();
500     sleep(10);
501     $d->find_element_ok('//*[starts-with(@id, "run_pca")]', 'xpath', 'run_pca')->click();
502     sleep(3);
503     $d->find_element_ok('no_queue', 'id', 'no job queueing')->click();
504     sleep(200);
505     $d->find_element_ok('//*[contains(text(), "PC2")]', 'xpath', 'check geno pca plot in selection pop page')->click();
506     sleep(5);
509     foreach my $list_id ( $trials_list_id, $accessions_list_id, $plots_list_id ) {
510             $list_id =~ s/\w+_//g;
511             $solgs_data->delete_list($list_id);
512         }
514     foreach my $dataset_id ( $trials_dt_id, $accessions_dt_id, $plots_dt_id ) {
515             $dataset_id =~ s/\w+_//g;
516             $solgs_data->delete_dataset($dataset_id);
517     }
522 done_testing();