2016-04-03 20 views
1

Görünüşe göre Selenium IDE oldukça güvensiz. Örneğin, aşağıdaki komut dosyasındaki son komut, komut dosyasının içinde herhangi bir etkiye sahip değildir, ancak ayrı ayrı çift tıklarsam, dosya seçimi iletişim kutusunu açar. Niye ya?Selenium IDE: Neden clickAt burada çalışmıyor?

Başka bir soru, bir sonraki komutla dosya seçimini nasıl sağlayabilirim?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<link rel="selenium.base" href="https://www.gumtree.com/" /> 
<title>gumtree</title> 
</head> 
<body> 
<table cellpadding="1" cellspacing="1" border="1"> 
<thead> 
<tr><td rowspan="1" colspan="3">gumtree</td></tr> 
</thead><tbody> 
<tr> 
    <td>open</td> 
    <td>https://my.gumtree.com/postad</td> 
    <td></td> 
</tr> 
<tr> 
    <td>waitForPageToLoad</td> 
    <td>5000</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAt</td> 
    <td>//form[@id='frmSyi']/div/div/div/div/nav/ul/li[2]/div/span[2]</td> 
    <td></td> 
</tr> 
<tr> 
    <td>waitForPageToLoad</td> 
    <td>500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAt</td> 
    <td>//form[@id='frmSyi']/div/div/div/div/div/div/div/div/ul/li[10]/span</td> 
    <td></td> 
</tr> 
<tr> 
    <td>waitForPageToLoad</td> 
    <td>500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAt</td> 
    <td>//form[@id='frmSyi']/div/div/div/div/div/div[2]/div/div/ul/li[2]/span</td> 
    <td></td> 
</tr> 
<tr> 
    <td>waitForPageToLoad</td> 
    <td>500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAt</td> 
    <td>//form[@id='frmSyi']/div/div/div/div/div/div[3]/div/div/ul/li[4]/span</td> 
    <td></td> 
</tr> 
<tr> 
    <td>pause</td> 
    <td>500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=continueButton</td> 
    <td></td> 
</tr> 
<tr> 
    <td>pause</td> 
    <td>500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAt</td> 
    <td>link=Add image</td> 
    <td></td> 
</tr> 
</tbody></table> 
</body> 
</html> 
+1

statik gecikmeleri kullandığınızda, bunları tıklamaya çalışmadan önce belirli öğelerin görüntülenmesini beklemek yerine ve düzgün olup olmadığını kolayca söyleyemediğiniz çirkin uzun xpath kullanın, o zaman, evet, IDE güvenilmez hale gelir. "waitForElementPresent" öğesini tıklamadan önce kullanmaya çalışın ve daha iyi konum belirleyicileri kullanın. –

+0

IDE yıllarca kullanımdan kaldırıldı ve Selenium, insanları beklemede daha iyi kontrol için WebDriver'a geçmeye zorluyor. –

+0

@AndrewRegan, bunun kullanımdan kaldırıldığını gördünüz mü? AFAIK, bunu test etmenin ciddi bir yolu olarak görmüyorlar: "Bunu, basit komut dosyaları oluşturmak veya keşif amaçlı testlere yardımcı olmak için kullanın." - site –

cevap

0

ClickAt, koordinatların tıklatılması için özel bir komuttur. Yani yanlış bir şekilde kullanıyorsunuz. Düzenli tıklama veya doubleClick veya (çok özel bir durumda) koordinat dizesi sağlayarak clickAt kullanmalısınız.

Dosya yükleme işlemi çok kolay değil. Yükleme için dosya adı içeren bir giriş bulmalısınız. Bir komut veya javascript ile dosya adı gönderin. Ve sonunda yükleme işlemini başlat. Örneğin:

type | id=hiddenInputForFileName | /path_to_your_file/your_file.lol 
click | id=startUploadingButton 

Bu bir örnektir. Kodunuz, form yükleme form tasarımına bağlı olacaktır. Umarım yardımcı olur. Eğer sayfanızın html'sini sağlamayacaksa ve durumunuza ilişkin kodu göndereceğim.

İlgili konular