1

5 つのファイルをアップロードしたいのですが、私の「ファイル入力」は同じ名前/ID です。どうすれば 5 つのファイルをアップロードできますか? 私のHTMLコードは次のとおりです。

<div>
    <table id="listtable">
    </table>
    <br/>
    <input type="hidden" name="delFiles" id="deletefiles"/> 
    <table id="filetable">
    <tbody>
        <tr>
            <td>
                <input type="file" size="27px" id="page" name="page"/>
            </td>
            <td>
                <a href="#">
                    <img name="del" onclick="removeRow(this);" title="delete" alt="delete" src="images/user_delete.png"/>
                </a>
            </td>
        </tr>
        <tr>
            <td>
                <input type="file" size="27px" name="page"/>
            </td>
            <td>
                <img name="del" onclick="removeRow(this);" title="delete" alt="delete" src="images/user_delete.png"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="file" size="27px" name="page"/>
            </td>
            <td>
                <img name="del" onclick="removeRow(this);" title="delete" alt="delete" src="images/user_delete.png"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="file" size="27px" name="page"/>
            </td>
            <td>
                <img name="del" onclick="removeRow(this);" title="delete" alt="delete" src="images/user_delete.png"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="file" size="27px" name="page"/>
            </td>
            <td>
                <img name="del" onclick="removeRow(this);" title="delete" alt="delete" src="images/user_delete.png"/>
            </td>
        </tr>
        </tbody>
    </table>
    <br/>
    <br/>
</div>
4

4 に答える 4

1

ファイルを 1 つだけアップロードする場合と同じように行います。

driver.findElement(By.id("input1")).sendKeys("path/to/first/file");
driver.findElement(By.id("input2")).sendKeys("path/to/second/file");
driver.findElement(By.id("input3")).sendKeys("path/to/third/file");
driver.findElement(By.id("input4")).sendKeys("path/to/fourth/file");
driver.findElement(By.id("input5")).sendKeys("path/to/fifth/file");
driver.findElement(By.id("upload")).click();

明らかに、自分の正しい ID などを入力する必要があります。

于 2013-06-20T09:55:09.570 に答える
0

その簡単なようなもの //input[@type="file"] は最初の入力タグを指し (//input[@type="file"])[{INDEX}] 、INDEX は入力タグの番号です注: xpath のインデックスは 1 から始まります

または、

file_tag_list =driver.find_elements_by_xpath(//input[@type="file"])

さまざまな言語で見つけることができるPython構文は、グーグルで検索してください。この関数は webdriver 要素のリストを返します。

file_tag_list[0].send_keys(filepath)
file_tag_list[1].send_keys(filepath)
于 2015-05-22T12:53:05.000 に答える