示例#1
0
def test_can_add_new_row_and_save_it(url, browser):
    browser.get(url + "/tablebuilder/")

    # Find the table and make sure there's only one row in it.
    table = browser.find_element_by_id("table")
    assert len(table.find_elements_by_css_selector("tr")) == 1

    # Find the add button, click it, and wait until another row appears.
    add_button = browser.find_element_by_id("add-button")
    add_button.click()
    wait_for(lambda: len(table.find_elements_by_css_selector("tr")) == 2)

    # Fill each input in the new row with the string "Haverford".
    row = browser.find_element_by_css_selector("tr:nth-child(1)")
    for elem in row.find_elements_by_css_selector("input"):
        elem.send_keys("Haverford")

    # Save the row and wait for the inputs to disappear.
    save_button = row.find_element_by_css_selector("button.save-button")
    save_button.click()
    wait_for(lambda: len(row.find_elements_by_css_selector("input")) == 0)

    # Check that our input got put in the saved row.
    for cell in row.find_elements_by_css_selector(".content-cell"):
        assert "Haverford" in cell.text
示例#2
0
def test_remove_row(url, browser):
    browser.get(url + "/tablebuilder/")

    add_some_rows(browser, ["Haverford", "Bryn Mawr", "Swarthmore", "Penn"])

    row = browser.find_element_by_css_selector("tr:nth-child(4)")
    remove_button = row.find_element_by_css_selector("button.remove-button")
    remove_button.click()
    wait_for(lambda: "Penn" not in browser.page_source)

    table = browser.find_element_by_id("table")
    assert len(table.find_elements_by_css_selector("tr")) == 4
示例#3
0
def add_some_rows(browser, content):
    nrows = 1
    table = browser.find_element_by_id("table")
    add_button = browser.find_element_by_id("add-button")
    for cell in content:
        add_button.click()
        wait_for(lambda: len(table.find_elements_by_css_selector("tr")) ==
                 nrows + 1)
        nrows += 1

        # Fill each input in the new row with the string "Haverford".
        row = browser.find_element_by_css_selector(
            "tr:nth-child({})".format(nrows - 1))
        for elem in row.find_elements_by_css_selector("input"):
            elem.send_keys(cell)

        save_button = row.find_element_by_css_selector("button.save-button")
        save_button.click()
        wait_for(lambda: len(row.find_elements_by_css_selector("input")) == 0)
示例#4
0
def test_add_and_edit_a_row(url, browser):
    browser.get(url + "/tablebuilder/")

    add_some_rows(browser, ["JavaScript"])

    row = browser.find_element_by_css_selector("tr:nth-child(1)")
    edit_button = browser.find_element_by_css_selector("button.edit-button")
    edit_button.click()
    wait_for(lambda: len(row.find_elements_by_css_selector("input")) != 0)

    for elem in row.find_elements_by_css_selector("input"):
        assert "JavaScript" in elem.get_attribute("value")
        elem.clear()
        elem.send_keys("Python")

    save_button = row.find_element_by_css_selector("button.save-button")
    save_button.click()
    wait_for(lambda: len(row.find_elements_by_css_selector("input")) == 0)

    for cell in row.find_elements_by_css_selector(".content-cell"):
        assert "Python" in cell.text
        assert "JavaScript" not in cell.text