|
14 | 14 | # KIND, either express or implied. See the License for the
|
15 | 15 | # specific language governing permissions and limitations
|
16 | 16 | # under the License.
|
17 |
| -import base64 |
18 |
| -import io |
19 |
| -import zipfile |
20 |
| -from time import sleep |
21 |
| - |
22 |
| -import pytest |
| 17 | +import os |
| 18 | +import tempfile |
23 | 19 |
|
24 | 20 | from selenium.webdriver.common.by import By
|
| 21 | +from selenium.webdriver.support.wait import WebDriverWait |
25 | 22 |
|
26 | 23 |
|
27 | 24 | def test_get_downloadable_files(driver, pages):
|
28 | 25 | pages.load("downloads/download.html")
|
29 | 26 | driver.find_element(By.ID, "file-1").click()
|
30 | 27 | driver.find_element(By.ID, "file-2").click()
|
31 |
| - sleep(3) |
| 28 | + WebDriverWait(driver, 3).until(lambda d: len(d.get_downloadable_files()) == 2) |
| 29 | + |
| 30 | + file_names = driver.get_downloadable_files() |
32 | 31 |
|
33 |
| - file_names = driver.get_downloadable_files()["names"] |
34 | 32 | assert "file_1.txt" in file_names
|
35 | 33 | assert "file_2.jpg" in file_names
|
36 | 34 |
|
37 | 35 |
|
38 | 36 | def test_download_file(driver, pages):
|
39 | 37 | pages.load("downloads/download.html")
|
40 | 38 | driver.find_element(By.ID, "file-1").click()
|
41 |
| - sleep(3) |
| 39 | + WebDriverWait(driver, 3).until(lambda d: d.get_downloadable_files()) |
42 | 40 |
|
43 |
| - file_contents = driver.download_file("file_1.txt")["contents"] |
44 |
| - file_byte_data = base64.b64decode(file_contents) |
45 |
| - zip_memory = io.BytesIO(file_byte_data) |
| 41 | + file_name = driver.get_downloadable_files()[0] |
| 42 | + with tempfile.TemporaryDirectory() as target_directory: |
| 43 | + driver.download_file(file_name, target_directory) |
46 | 44 |
|
47 |
| - with zipfile.ZipFile(zip_memory, "r") as zip_ref: |
48 |
| - for name in zip_ref.namelist(): |
49 |
| - with zip_ref.open(name) as file: |
50 |
| - file_content = file.read() |
51 |
| - assert "Hello, World!" in file_content.decode("utf-8") |
| 45 | + target_file = os.path.join(target_directory, file_name) |
| 46 | + with open(target_file, "r") as file: |
| 47 | + assert "Hello, World!" in file.read() |
52 | 48 |
|
53 | 49 |
|
54 | 50 | def test_delete_downloadable_files(driver, pages):
|
55 | 51 | pages.load("downloads/download.html")
|
56 | 52 | driver.find_element(By.ID, "file-1").click()
|
57 |
| - sleep(3) |
| 53 | + WebDriverWait(driver, 3).until(lambda d: d.get_downloadable_files()) |
58 | 54 |
|
59 | 55 | driver.delete_downloadable_files()
|
60 |
| - assert not driver.get_downloadable_files()["names"] |
| 56 | + assert not driver.get_downloadable_files() |
0 commit comments