Kaynağa Gözat

Добавил скрипт для webui метролога.

TelenkovDmitry 1 yıl önce
ebeveyn
işleme
e30eaad90d
2 değiştirilmiş dosya ile 93 ekleme ve 3 silme
  1. 52 3
      courses/python_indi/generator.py
  2. 41 0
      selenium/metrolog.py

+ 52 - 3
courses/python_indi/generator.py

@@ -1,3 +1,5 @@
+from typing import Generator
+
 def test_1():
     s = [1, 2, 3, 4, 5]
     d = iter(s)
@@ -20,7 +22,54 @@ def test_3():
     for _ in range(1, 78):
         print(next(days))
 
-test_3()
+# test_3()
+
+# Функция генератор
+
+def genf():
+    s = 7
+    for i in range(10):
+        yield i  # Замораживает функцию в этом месте
+        print(s)
+        s = s*10 + 7
+
+def fact(n):
+    pr = 1
+    for i in range(1, n + 1):
+        pr = pr*i
+        yield pr
+    
+# for i in fact(10):
+#     print(i, end=' ')
+
+
+# Generator[yield_type, send_type, return_type]
+
+def echo_round() -> Generator[int, float, str]:
+    res = yield
+    while res:
+        res = yield round(res)
+    return 'OK'
+
+
+def gen_squares(n):
+    for i in range(1, n + 1):
+        yield i**2
+
+# for i in gen_squares(5):
+#     print(i)
+
+def gen_fibonacci_numbers(n):
+    first = 0
+    second = 1
+    for i in range(0, n):
+        s = first + second
+        second = first
+        first = s
+        yield s
+    
+# for i in gen_fibonacci_numbers(10):
+#     print(i)
 
-# test_1()
-# test_2()
+def my_range_gen(n):
+    pass

+ 41 - 0
selenium/metrolog.py

@@ -0,0 +1,41 @@
+from selenium import webdriver
+from selenium.webdriver.common.keys import Keys
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as ES
+import time
+
+
+class MetrologWebTest():
+    USER = 'user'
+    PASWORD = 'uchetmo'
+
+    def __init__(self):
+        self.driver = webdriver.Firefox()
+
+    def login(self, ip: str) -> bool:  
+        self.driver.get('http://' + ip)
+        time.sleep(1)
+        self.driver.find_element(By.ID, 'login').send_keys(self.USER)
+        self.driver.find_element(By.ID, 'pass').send_keys(self.PASWORD)
+        self.driver.find_element(By.CLASS_NAME, 'btn.btn-primary').click()
+        time.sleep(1)
+        return True if self.driver.title == "Состояние модема" else False
+
+    def test_page_click(self):
+        while True:
+            time.sleep(1)
+            nav = self.driver.find_element(By.XPATH, "//ul[@id='nav']/li[2]/a").click()
+            time.sleep(1)
+            nav = self.driver.find_element(By.XPATH, "//ul[@id='nav']/li[3]/a").click()
+            time.sleep(1)
+            nav = self.driver.find_element(By.XPATH, "//ul[@id='nav']/li[1]/a").click()
+
+            # element = WebDriverWait(self.driver, 10).until(ES.element_to_be_clickable(('link text', 'settings.html')))
+            # element.click()
+        
+
+
+my_test = MetrologWebTest() 
+if my_test.login('192.168.31.230') == True:
+    my_test.test_page_click()