Exemplo n.º 1
0
def release(content, driver, account):
    transactionIndex = content.find("Transaction:")
    transaction = content[transactionIndex:content[transactionIndex:].
                          find("\n") + transactionIndex]
    ccnIndex = content.find("Cargo Control Number:")
    releaseIndex = content.find("Release Office: ")
    ccn = content[ccnIndex + 22:releaseIndex].strip()
    transaction = transaction + "\n" + content[ccnIndex:content[ccnIndex:].
                                               find("\n") + ccnIndex]
    deliveryIndex = content.find("Delivery Instructions") - 2

    containerIndex = content.find("Container ID(s):") + 17
    containers = []

    if containerIndex < deliveryIndex:
        while containerIndex < deliveryIndex:
            containers.append(
                content[containerIndex:content[containerIndex:].find(",") +
                        containerIndex].strip())
            containerIndex = content[containerIndex:].find(
                ",") + 1 + containerIndex
        print("\nReleasing the following containers: ")
        for cont in containers:
            sendRelease(cont, transaction, driver, account)
    else:
        m = Message(
            account=account,
            subject='CCN is Released: ' + ccn,
            body='PB #(if Seaport CCN): ' + ccn[-6:] +
            "\n\nThe RNS release message did not have a container number in it\n\n\nTHIS IS AN AUTOMATED MESSAGE, DO NOT REPLY",
            to_recipients=[
                Mailbox(email_address='*****@*****.**'),
            ])
        m.send()
        print("\nEmail with no container number")
Exemplo n.º 2
0
    def test_counts(self):
        # Test count values on a folder
        f = Folder(parent=self.account.inbox,
                   name=get_random_string(16)).save()
        f.refresh()

        self.assertEqual(f.total_count, 0)
        self.assertEqual(f.unread_count, 0)
        self.assertEqual(f.child_folder_count, 0)
        # Create some items
        items = []
        for i in range(3):
            subject = 'Test Subject %s' % i
            item = Message(account=self.account,
                           folder=f,
                           is_read=False,
                           subject=subject,
                           categories=self.categories)
            item.save()
            items.append(item)
        # Refresh values and see that total_count and unread_count changes
        f.refresh()
        self.assertEqual(f.total_count, 3)
        self.assertEqual(f.unread_count, 3)
        self.assertEqual(f.child_folder_count, 0)
        for i in items:
            i.is_read = True
            i.save()
        # Refresh values and see that unread_count changes
        f.refresh()
        self.assertEqual(f.total_count, 3)
        self.assertEqual(f.unread_count, 0)
        self.assertEqual(f.child_folder_count, 0)
        self.bulk_delete(items)
        # Refresh values and see that total_count changes
        f.refresh()
        self.assertEqual(f.total_count, 0)
        self.assertEqual(f.unread_count, 0)
        self.assertEqual(f.child_folder_count, 0)
        # Create some subfolders
        subfolders = []
        for i in range(3):
            subfolders.append(
                Folder(parent=f, name=get_random_string(16)).save())
        # Refresh values and see that child_folder_count changes
        f.refresh()
        self.assertEqual(f.total_count, 0)
        self.assertEqual(f.unread_count, 0)
        self.assertEqual(f.child_folder_count, 3)
        for sub_f in subfolders:
            sub_f.delete()
        # Refresh values and see that child_folder_count changes
        f.refresh()
        self.assertEqual(f.total_count, 0)
        self.assertEqual(f.unread_count, 0)
        self.assertEqual(f.child_folder_count, 0)
        f.delete()
Exemplo n.º 3
0
 def send_and_save_common_message(self, subject, body, to):
     try:
         m = Message(account=self.exchangelib_connection,
                     folder=a.sent,
                     subject=subject,
                     body=body,
                     to_recipients=to)
         m.send_and_save()
         print('Your message send success!')
     except Exception:
         print('Please try again!')
Exemplo n.º 4
0
def test_parse_incident_from_item_with_attachments():
    """
    Given:
        - Message item with attachment that contains email attachments

    When:
        - Parsing incident from item

    Verify:
        - Parsing runs successfully
    """
    content = b'ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901;' \
              b' d=microsoft.com; cv=none;b=ES/YXpFlV19rlN1iV+ORg5RzID8GPSQL' \
              b'nUT26MNdeTzcQSwK679doIz5Avpv8Ps2H/aBkBamwRNOCJBkl7iCHyy+04yRj3ghikw3u/ufIFHi0sQ7QG95mO1PVPLibv9A=='

    message = Message(
        datetime_created=EWSDate(year=2021, month=1, day=25),
        to_recipients=[],
        attachments=[
            ItemAttachment(
                item=Item(mime_content=content, headers=[]),
                attachment_id=AttachmentId(),
                last_modified_time=EWSDate(year=2021, month=1, day=25),
            ),
        ],
    )
    incident = parse_incident_from_item(message)
    assert incident['attachment']
Exemplo n.º 5
0
def test_parse_incident_from_item():
    """
    Given:
        - Message item with attachment that contains non UTF-8 encoded char

    When:
        - Parsing incident from item

    Verify:
        - Parsing runs successfully
        - Incidnet attachment is not empty
    """
    message = Message(
        datetime_created=EWSDate(year=2021, month=1, day=25),
        to_recipients=[],
        attachments=[
            ItemAttachment(
                item=Item(mime_content=b'\xc400'),
                attachment_id=AttachmentId(),
                last_modified_time=EWSDate(year=2021, month=1, day=25),
            ),
        ],
    )
    incident = parse_incident_from_item(message)
    assert incident['attachment']
Exemplo n.º 6
0
def test_metrics():
    metrics.stats.update(default_metrics)
    bad_message = Message(headers=None, sender=Mailbox(email_address=''))
    relay(bad_message, None)
    assert metrics.stats['message_ignore_count'] == 1

    metrics.stats.update(default_metrics)
    bad_message = Message(
        headers=[MessageHeader(name='X-Autoreply', value='yes')],
        sender=Mailbox(email_address=''))
    relay(bad_message, None)
    assert metrics.stats['message_ignore_count'] == 1

    fake_iris_client = IrisClient('http://localhost')
    good_message = Message(headers=[],
                           sender=Mailbox(email_address=''),
                           text_body='')

    with requests_mock.mock() as m:
        m.post('http://localhost/v0/response/email')
        metrics.stats.update(default_metrics)
        relay(good_message, fake_iris_client)
        assert metrics.stats['message_relay_success_count'] == 1
        assert metrics.stats['incident_created_count'] == 0

    with requests_mock.mock() as m:
        m.post('http://localhost/v0/response/email',
               headers={'X-IRIS-INCIDENT': '1234'})
        metrics.stats.update(default_metrics)
        relay(good_message, fake_iris_client)
        assert metrics.stats['message_relay_success_count'] == 1
        assert metrics.stats['incident_created_count'] == 1

    with requests_mock.mock() as m:
        m.post('http://localhost/v0/response/email', status_code=500)
        metrics.stats.update(default_metrics)
        relay(good_message, fake_iris_client)
        assert metrics.stats['message_relay_failure_count'] == 1

    with requests_mock.mock() as m:
        m.post('http://localhost/v0/response/email', status_code=400)
        metrics.stats.update(default_metrics)
        relay(good_message, fake_iris_client)
        assert metrics.stats['malformed_message_count'] == 1
Exemplo n.º 7
0
 def send_with_attachment(self, subject, body, to, path, cc):
     if os.path.exists(path):
         try:
             item = Message(account=self.exchangelib_connection,
                            folder=a.sent,
                            subject=subject,
                            body=body,
                            to_recipients=to,
                            cc_recipients=cc)
             with open(path, 'rb') as f:
                 binary_file_content = f.read()
             my_file = FileAttachment(name=os.path.basename(path),
                                      content=binary_file_content)
             item.attach(my_file)
             item.save()
             item.send_and_save()
             print('Your message send success!')
         except Exception:
             print('Please try again!')
     else:
         print('Please check your path')
Exemplo n.º 8
0
 def test_pickle(self):
     # Test that we can pickle various objects
     item = Message(folder=self.account.inbox, subject='XXX', categories=self.categories).save()
     attachment = FileAttachment(name='pickle_me.txt', content=b'')
     for o in (
         FaultTolerance(max_wait=3600),
         self.account.protocol,
         attachment,
         self.account.root,
         self.account.inbox,
         self.account,
         item,
     ):
         with self.subTest(o=o):
             pickled_o = pickle.dumps(o)
             unpickled_o = pickle.loads(pickled_o)
             self.assertIsInstance(unpickled_o, type(o))
             if not isinstance(o, (Account, Protocol, FaultTolerance)):
                 # __eq__ is not defined on some classes
                 self.assertEqual(o, unpickled_o)
 def test_attachment_failure(self):
     att1 = FileAttachment(name="my_file_1.txt", content="Hello from unicode æøå".encode("utf-8"))
     att1.attachment_id = "XXX"
     with self.assertRaises(ValueError) as e:
         att1.attach()
     self.assertEqual(e.exception.args[0], "This attachment has already been created")
     att1.attachment_id = None
     with self.assertRaises(ValueError) as e:
         att1.attach()
     self.assertEqual(e.exception.args[0], "Parent item None must have an account")
     att1.parent_item = Item()
     with self.assertRaises(ValueError) as e:
         att1.attach()
     self.assertEqual(e.exception.args[0], "Parent item Item(attachments=[]) must have an account")
     att1.parent_item = None
     with self.assertRaises(ValueError) as e:
         att1.detach()
     self.assertEqual(e.exception.args[0], "This attachment has not been created")
     att1.attachment_id = "XXX"
     with self.assertRaises(ValueError) as e:
         att1.detach()
     self.assertEqual(e.exception.args[0], "Parent item None must have an account")
     att1.parent_item = Item()
     with self.assertRaises(ValueError) as e:
         att1.detach()
     self.assertEqual(e.exception.args[0], "Parent item Item(attachments=[]) must have an account")
     att1.parent_item = "XXX"
     with self.assertRaises(TypeError) as e:
         att1.clean()
     self.assertEqual(
         e.exception.args[0], "'parent_item' 'XXX' must be of type <class 'exchangelib.items.item.Item'>"
     )
     with self.assertRaises(ValueError) as e:
         Message(attachments=[att1])
     self.assertIn("must point to this item", e.exception.args[0])
     att1.parent_item = None
     att1.attachment_id = None
Exemplo n.º 10
0
 def order_by(self, *args):
     # Return a list of emails
     return [Message(), Message(), Message(), Message(), Message()]
Exemplo n.º 11
0
 def order_by(self, *args):
     return [Message(), Message(), Message(), Message(), Message()]
Exemplo n.º 12
0
        raw_response = RAW_RESPONSES[command_name]
        mocker.patch.object(ExpandGroup, "__init__", return_value=None)
        mocker.patch.object(ExpandGroup, "call", return_value=raw_response)
        client = self.MockClient()
        res = get_expanded_group(
            client, email_address="*****@*****.**"
        )
        actual_ec = res[1]
        assert expected == actual_ec


MESSAGES = [
    Message(subject='message1',
            message_id='message1',
            text_body='Hello World',
            body='message1',
            datetime_received=EWSDateTime(2021, 7, 14, 13, 00, 00, tzinfo=EWSTimeZone(key='UTC')),
            datetime_sent=EWSDateTime(2021, 7, 14, 13, 00, 00, tzinfo=EWSTimeZone(key='UTC')),
            datetime_created=EWSDateTime(2021, 7, 14, 13, 00, 00, tzinfo=EWSTimeZone(key='UTC'))
            ),
    Message(subject='message2',
            message_id='message2',
            text_body='Hello World',
            body='message2',
            datetime_received=EWSDateTime(2021, 7, 14, 13, 9, 00, tzinfo=EWSTimeZone(key='UTC')),
            datetime_sent=EWSDateTime(2021, 7, 14, 13, 9, 00, tzinfo=EWSTimeZone(key='UTC')),
            datetime_created=EWSDateTime(2021, 7, 14, 13, 9, 00, tzinfo=EWSTimeZone(key='UTC'))
            ),
    Message(subject='message3',
            message_id='message3',
            text_body='Hello World',
            body='message3',
Exemplo n.º 13
0
def sendRelease(container, transaction, driver, account):
    print(container)
    driver.switch_to_default_content()
    driver.switch_to_frame(
        driver.find_element_by_css_selector("frame[src='topnavframe.asp']"))

    driver.find_element_by_css_selector(
        'a[href*="MenuNavFrame.asp?MenuID=5"').click()

    driver.switch_to_default_content()
    driver.switch_to_frame(
        driver.find_element_by_css_selector(
            "frame[src='MenuNavFrame.asp?MenuID=10']"))

    driver.find_element_by_css_selector(
        'a[href*="inventory/udsearch.asp"').click()

    failed = True
    while failed:
        try:
            driver.switch_to_default_content()
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='portals/portal.asp']"))
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='udSearchForm.asp?func=']"))
            failed = False
        except:
            pass

    elem = driver.find_element_by_name("unitprefix")
    elem.clear()
    elem.send_keys(container[:4])
    elem = driver.find_element_by_name("unitnumber")
    elem.clear()
    elem.send_keys(container[4:11])

    driver.find_element_by_css_selector(
        "Input[class='Button'][name='Submit']").click()

    #     driver.switch_to_default_content()
    #     driver.switch_to_frame(driver.find_element_by_css_selector("frame[src='portals/portal.asp']"))
    # #     frame = driver.find_element_by_css_selector("frame[src='udSearchResult.asp']")
    #     driver.switch_to_frame(driver.find_element_by_css_selector("frame[src='udSearchResult.asp']"))
    #     wait = WebDriverWait(driver, 10)
    #     wait.until(lambda driver: "Your query did not return any results" in driver.page_source or
    #                 EC.element_to_be_clickable(driver.find_element_by_css_selector("a[href*='unitDisposition.asp?eqid']")))
    found = False
    while not found:
        try:
            #             print(driver.page_source)
            driver.switch_to_default_content()
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='portals/portal.asp']"))
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='udSearchResult.asp']"))
            if ("Your query did not return any results" in driver.page_source):
                found = True
            driver.implicitly_wait(0)
            driver.find_element_by_css_selector(
                "a[href*='unitDisposition.asp?eqid']")
            found = True
            driver.implicitly_wait(60)
        except:
            driver.implicitly_wait(60)
    if ("Your query did not return any results" in driver.page_source):
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='topnavframe.asp']"))
        driver.find_element_by_css_selector(
            'a[href*="MenuNavFrame.asp?MenuID=1"').click()
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='MenuNavFrame.asp?MenuID=10']"))
        driver.find_element_by_css_selector(
            "a[href='Gate/VirtualArrive/VirtualArriveSearch.asp']").click()

        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='portals/portal.asp']"))
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='VirtualArriveForm.asp']"))
        driver.find_element_by_id("1").send_keys(container[:4])
        driver.find_element_by_id("2").send_keys(container[4:11])
        driver.find_element_by_css_selector(
            "Input[class='Button'][name='Submit']").click()

        found = False
        while not found:
            try:
                driver.switch_to_default_content()
                driver.switch_to_frame(
                    driver.find_element_by_css_selector(
                        "frame[src='portals/portal.asp']"))
                driver.switch_to_frame(
                    driver.find_element_by_css_selector(
                        "frame[src='VirtualArriveResult.asp']"))
                if ("Your query did not return any results"
                        in driver.page_source):
                    found = True
                driver.implicitly_wait(0)
                driver.find_element_by_css_selector(
                    "a[href*='javascript:EditVirtualArrive(']")
                found = True
                driver.implicitly_wait(60)
            except:
                driver.implicitly_wait(60)

        if (not "Your query did not return any results" in driver.page_source):
            driver.find_element_by_css_selector(
                "a[href*='javascript:EditVirtualArrive(']").click()

            parentWindow = driver.current_window_handle
            handles = driver.window_handles
            for windowHandle in handles:
                if (not windowHandle == parentWindow):
                    driver.switch_to.window(windowHandle)
                    elem = driver.find_element_by_id("CkbCR")
                    #                 try:
                    # eqcomments
                    if (elem.get_attribute("checked") == "true"):
                        driver.find_element_by_id("CkbCR").click()
                        driver.find_element_by_name("eqcomments").send_keys(
                            "\n" + transaction)

                        elem = driver.find_element_by_name("bkg_nbr_dof")
                        if (elem.get_attribute("value") == ""):
                            elem.send_keys("import")
                        elem1 = Select(driver.find_element_by_name("Line"))
                        elem2 = Select(driver.find_element_by_name("lineid"))
                        try:
                            if (elem1.first_selected_option.text == ""):
                                elem1.select_by_visible_text(
                                    elem2.first_selected_option.text)
                        except:
                            elem1.select_by_visible_text(
                                elem2.first_selected_option.text)
                        if driver.find_element_by_name(
                                "cargo_weight").get_attribute("value") == "":
                            driver.find_element_by_name(
                                "cargo_weight").send_keys("0")
                        Select(driver.find_element_by_name(
                            "ddWeightUnits")).select_by_visible_text("Kgs")
                        driver.find_element_by_css_selector(
                            "Input[class='Button'][name='Submit']").click()
                        wait = WebDriverWait(driver, 10)
                        wait.until(
                            lambda driver: "Your information has been saved."
                            in driver.page_source)

                    driver.close()
                    driver.switch_to.window(parentWindow)
    else:
        driver.find_element_by_css_selector(
            "a[href*='unitDisposition.asp?eqid']").click()
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='portals/portal.asp']"))
        elem = driver.find_element_by_css_selector(
            "input[name='crelease'][value='1']")
        if elem.get_attribute("checked") != "true":
            elem.click()
            driver.find_element_by_name("comments").send_keys("\n" +
                                                              transaction)
            driver.find_element_by_css_selector(
                "Input[class='Button'][name='Submit']").click()

        if driver.find_element_by_css_selector(
                "input[name='lfd']").get_attribute("value") == "":
            m = Message(
                account=account,
                subject='Missing LFD for container: ' + container,
                body='Missing LFD for container: ' + container +
                "\n\n\nTHIS IS AN AUTOMATED MESSAGE, DO NOT REPLY",
                to_recipients=[
                    Mailbox(email_address='*****@*****.**'),
                    Mailbox(email_address='*****@*****.**'),
                ])
            m.send()

    return True
Exemplo n.º 14
0
    top.geometry('%dx%d+%d+%d' % (w, h, x, y))
    top.update()
    credentials = Credentials(
        username='******',  # Or [email protected] for O365
        password='******')
    account = Account(primary_smtp_address='*****@*****.**',
                      credentials=credentials,
                      autodiscover=True,
                      access_type=DELEGATE)

    yardAccount = Account(primary_smtp_address='*****@*****.**',
                          credentials=credentials,
                          autodiscover=True,
                          access_type=DELEGATE)
    done = []
    tz = EWSTimeZone.localzone()
    Message.register('flag', Flag)

    top.after(0, doStuff, credentials, yardAccount, account, done)
    top.mainloop()
#         print("quitting")
#         sleep(2)
#         print("beofre")
#         try:
# #             driver.close()
#             driver.quit()
#         except:
#             print(exc_info())
#         print("aftr")
#         sleep(10)
# pyinstaller "C:\Users\ssleep\workspace\RNS Releaser\Automator\__init__.py" --distpath "J:\Spencer\RNS Releaser" -y
Exemplo n.º 15
0
def sendRelease(container, driver, account):
    success = True
    print(container)
    driver.switch_to_default_content()
    driver.switch_to_frame(
        driver.find_element_by_css_selector("frame[src='topnavframe.asp']"))

    driver.find_element_by_css_selector(
        'a[href*="MenuNavFrame.asp?MenuID=5"').click()

    driver.switch_to_default_content()
    driver.switch_to_frame(
        driver.find_element_by_css_selector(
            "frame[src='MenuNavFrame.asp?MenuID=10']"))

    driver.find_element_by_css_selector(
        'a[href*="inventory/udsearch.asp"').click()

    failed = True
    while failed:
        try:
            driver.switch_to_default_content()
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='portals/portal.asp']"))
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='udSearchForm.asp?func=']"))
            failed = False
        except:
            pass

    elem = driver.find_element_by_name("unitprefix")
    elem.clear()
    elem.send_keys(container[:4])
    elem = driver.find_element_by_name("unitnumber")
    elem.clear()
    elem.send_keys(container[4:11])

    driver.find_element_by_css_selector(
        "Input[class='Button'][name='Submit']").click()

    #     driver.switch_to_default_content()
    #     driver.switch_to_frame(driver.find_element_by_css_selector("frame[src='portals/portal.asp']"))
    # #     frame = driver.find_element_by_css_selector("frame[src='udSearchResult.asp']")
    #     driver.switch_to_frame(driver.find_element_by_css_selector("frame[src='udSearchResult.asp']"))
    #     wait = WebDriverWait(driver, 10)
    #     wait.until(lambda driver: "Your query did not return any results" in driver.page_source or
    #                 EC.element_to_be_clickable(driver.find_element_by_css_selector("a[href*='unitDisposition.asp?eqid']")))
    found = False
    while not found:
        try:
            #             print(driver.page_source)
            driver.switch_to_default_content()
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='portals/portal.asp']"))
            driver.switch_to_frame(
                driver.find_element_by_css_selector(
                    "frame[src='udSearchResult.asp']"))
            if ("Your query did not return any results" in driver.page_source):
                found = True
            driver.implicitly_wait(0)
            driver.find_element_by_css_selector(
                "a[href*='unitDisposition.asp?eqid']")
            found = True
            driver.implicitly_wait(60)
        except:
            driver.implicitly_wait(60)
    if ("Your query did not return any results" in driver.page_source):
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='topnavframe.asp']"))
        driver.find_element_by_css_selector(
            'a[href*="MenuNavFrame.asp?MenuID=1"').click()
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='MenuNavFrame.asp?MenuID=10']"))
        driver.find_element_by_css_selector(
            "a[href='Gate/VirtualArrive/VirtualArriveSearch.asp']").click()

        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='portals/portal.asp']"))
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='VirtualArriveForm.asp']"))
        driver.find_element_by_id("1").send_keys(container[:4])
        driver.find_element_by_id("2").send_keys(container[4:11])
        driver.find_element_by_css_selector(
            "Input[class='Button'][name='Submit']").click()

        found = False
        while not found:
            try:
                driver.switch_to_default_content()
                driver.switch_to_frame(
                    driver.find_element_by_css_selector(
                        "frame[src='portals/portal.asp']"))
                driver.switch_to_frame(
                    driver.find_element_by_css_selector(
                        "frame[src='VirtualArriveResult.asp']"))
                if ("Your query did not return any results"
                        in driver.page_source):
                    found = True
                driver.implicitly_wait(0)
                driver.find_element_by_css_selector(
                    "a[href*='javascript:EditVirtualArrive(']")
                found = True
                driver.implicitly_wait(60)
            except:
                driver.implicitly_wait(60)

        if (not "Your query did not return any results" in driver.page_source):
            driver.find_element_by_css_selector(
                "a[href*='javascript:EditVirtualArrive(']").click()

            parentWindow = driver.current_window_handle
            handles = driver.window_handles
            for windowHandle in handles:
                if (not windowHandle == parentWindow):
                    driver.switch_to.window(windowHandle)
                    if (driver.find_element_by_id("CkbFR").get_attribute(
                            "checked") == "true"):
                        driver.find_element_by_id("CkbFR").click()
                        driver.find_element_by_css_selector(
                            "Input[class='Button'][name='Submit']").click()
                        wait = WebDriverWait(driver, 10)
                        wait.until(
                            lambda driver: "Your information has been saved."
                            in driver.page_source)

                    driver.close()
                    driver.switch_to.window(parentWindow)
        else:
            print(container + " NOT IN SYSTEM")
            success = False

    else:
        driver.find_element_by_css_selector(
            "a[href*='unitDisposition.asp?eqid']").click()
        driver.switch_to_default_content()
        driver.switch_to_frame(
            driver.find_element_by_css_selector(
                "frame[src='portals/portal.asp']"))
        elem = driver.find_element_by_css_selector(
            "input[name='frelease'][value='1']")
        if elem.get_attribute("checked") != "true":
            elem.click()
            #             driver.find_element_by_name("comments").send_keys("\n"+transaction)
            driver.find_element_by_css_selector(
                "Input[class='Button'][name='Submit']").click()

        if driver.find_element_by_css_selector(
                "input[name='lfd']").get_attribute("value") == "":
            m = Message(
                account=account,
                subject='Missing LFD for container: ' + container,
                body='Missing LFD for container: ' + container,
                to_recipients=[Mailbox(email_address='*****@*****.**')])
            m.send()

    return success