import time

import faker
from selenium import webdriver
from selenium.common import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

# 登陆的账号，注册了作者，发布过小说
driver = webdriver.Chrome()  # 实例化浏览器对象
driver.maximize_window()
wait = WebDriverWait(driver, 5)  # 实例化等待对象
login_url = "http://120.25.127.201:18001/user/login.html"
driver.get(login_url)  # 在新的窗口打开url
username="15574113907"
password="123456"
el=wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='txtUName']")))
el.send_keys(username)
wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='txtPassword']"))).send_keys(password)
wait.until(ec.presence_of_element_located((By.XPATH, "//input[@id='btnLogin']"))).click()
# 根据username出现在首页作为等待条件，确保首页正常出现  你的元素的值是 15574113907  true false
wait.until(ec.text_to_be_present_in_element((By.LINK_TEXT,username),username))

# 显性等待作者专区元素并进行点击
locator = ("link text", "作家专区")
wait.until(ec.visibility_of_element_located(locator)).click()

# 切换windows窗口
handle = driver.window_handles[-1]  # 获取窗口句柄
driver.switch_to.window(handle)  # 切换窗口

# 点击章节管理
# 显性等待章节管理元素出现并进行点击
locator = ("partial link text", "章节管理")
wait.until(ec.visibility_of_element_located(locator)).click()

# 切换窗口句柄
driver.switch_to.window(driver.window_handles[-1])

try:
    # 如果有数据，点击某个元素
    locator = ("xpath", "//*[@id='hasContentDiv']/div[1]/div/a")
    wait.until(ec.visibility_of_element_located(locator)).click()
except TimeoutException:
    # 如果没有数据，点击另一个元素
    locator = ("xpath", "//*[@id='noContentDiv']/div/a")
    wait.until(ec.visibility_of_element_located(locator)).click()
except Exception:
    print("章节管理元素未找到")


# 显性等待章节名元素出现并进行输入从操作
locator = ("id", "bookIndex")
wait.until(ec.visibility_of_element_located(locator)).send_keys(f"章节名-{str(int(time.time()))}")

# 显性等待章节内容元素出现并进行输入从操作
locator = ("id", "bookContent")
wait.until(ec.visibility_of_element_located(locator)).send_keys(f"章节内容-{str(int(time.time()))}")

# 显性等待收费元素出现并点击
locator = ("css selector", '[name="isVip"][value="1"]')
wait.until(ec.visibility_of_element_located(locator)).click()

current_url = driver.current_url
# 显性等待提交元素出现并进行点击
locator = ("id", "btnRegister")
wait.until(ec.visibility_of_element_located(locator)).click()

time.sleep(5)
driver.quit()

# driver.execute_script(
#             "arguments[0].setAttribute('style',arguments[1]);",
#             el,
#             "border: 2px solid green;"  # 边框，green绿色
#         )