read_case.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import time
  2. import faker
  3. from selenium import webdriver
  4. from selenium.common import TimeoutException
  5. from selenium.webdriver.common.by import By
  6. from selenium.webdriver.support.wait import WebDriverWait
  7. from selenium.webdriver.support import expected_conditions as ec
  8. # 登陆的账号,注册了作者,发布过小说
  9. driver = webdriver.Chrome() # 实例化浏览器对象
  10. driver.maximize_window()
  11. wait = WebDriverWait(driver, 5) # 实例化等待对象
  12. login_url = "http://120.25.127.201:18001/user/login.html"
  13. driver.get(login_url) # 在新的窗口打开url
  14. username="15574113907"
  15. password="123456"
  16. el=wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='txtUName']")))
  17. el.send_keys(username)
  18. wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='txtPassword']"))).send_keys(password)
  19. wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='btnLogin']"))).click()
  20. # 根据username出现在首页作为等待条件,确保首页正常出现 你的元素的值是 15574113907 true false
  21. wait.until(ec.text_to_be_present_in_element((By.LINK_TEXT,username),username))
  22. # 显性等待作者专区元素并进行点击
  23. locator = ("link text", "作家专区")
  24. wait.until(ec.visibility_of_element_located(locator)).click()
  25. # 切换windows窗口
  26. handle = driver.window_handles[-1] # 获取窗口句柄
  27. driver.switch_to.window(handle) # 切换窗口
  28. # 点击章节管理
  29. # 显性等待章节管理元素出现并进行点击
  30. locator = ("partial link text", "章节管理")
  31. wait.until(ec.visibility_of_element_located(locator)).click()
  32. # 切换窗口句柄
  33. driver.switch_to.window(driver.window_handles[-1])
  34. try:
  35. # 如果有数据,点击某个元素
  36. locator = ("xpath", "//*[@id='hasContentDiv']/div[1]/div/a")
  37. wait.until(ec.visibility_of_element_located(locator)).click()
  38. except TimeoutException:
  39. # 如果没有数据,点击另一个元素
  40. locator = ("xpath", "//*[@id='noContentDiv']/div/a")
  41. wait.until(ec.visibility_of_element_located(locator)).click()
  42. except Exception:
  43. print("章节管理元素未找到")
  44. # 显性等待章节名元素出现并进行输入从操作
  45. locator = ("id", "bookIndex")
  46. wait.until(ec.visibility_of_element_located(locator)).send_keys(f"章节名-{str(int(time.time()))}")
  47. # 显性等待章节内容元素出现并进行输入从操作
  48. locator = ("id", "bookContent")
  49. wait.until(ec.visibility_of_element_located(locator)).send_keys(f"章节内容-{str(int(time.time()))}")
  50. # 显性等待收费元素出现并点击
  51. locator = ("css selector", '[name="isVip"][value="1"]')
  52. wait.until(ec.visibility_of_element_located(locator)).click()
  53. current_url = driver.current_url
  54. # 显性等待提交元素出现并进行点击
  55. locator = ("id", "btnRegister")
  56. wait.until(ec.visibility_of_element_located(locator)).click()
  57. time.sleep(5)
  58. driver.quit()
  59. # driver.execute_script(
  60. # "arguments[0].setAttribute('style',arguments[1]);",
  61. # el,
  62. # "border: 2px solid green;" # 边框,green绿色
  63. # )