2016-04-03 13 views
1

明らかにSelenium IDEはかなり信頼できません。たとえば、次のスクリプトの最後のコマンドはスクリプト内に何の効果もありませんが、別にダブルクリックするとファイル選択ダイアログが開きます。どうして?Selenium IDE:ここでclickAtが動作しないのはなぜですか?

もう1つの質問ですが、次のコマンドでファイルを選択する方法を教えてください。

<?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

クリックする前に特定の要素が表示されるのを待つのではなく、静的な遅延を使用するときに、醜い長いxpathを使用すると、正しいかどうかを簡単に判断できず、IDEが信頼できなくなります。 "waitForElementPresent"をクリックしてより良いロケータを使用するようにしてください。 –

+0

IDEは長年にわたり廃止されており、SeleniumはWebDriverに切り替えるようにユーザーを促しています。 –

+0

@AndrewReganどこが非難されたことが分かりましたか? AFAIKは単にテストするための真剣な方法として扱っていません。「簡単なスクリプトを作成したり、探索的なテストを支援するためにこれを使用してください。 - サイト –

答えて

0

ClickAtは座標をクリックするための特殊なコマンドです。あなたは間違った方法でそれを使用しています。通常のクリック、doubleClickまたは(特別な場合は)clickAtを使用して座標列を提供する必要があります。

ファイルのアップロードはあまり簡単ではありません。アップロードするファイル名を含む入力があるはずです。 typeコマンドまたはjavascriptを使用してファイル名を送信します。最後にアップロードを開始します。 Like:

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

これは一例です。あなたのコードは、フォームをアップロードするファイルに依存します。私はそれが助けてくれることを願うそれがあなたのページのhtmlを提供してくださいしない場合、私はあなたの状況のコードを掲載します。

関連する問題