k2222732 2023-12-26 21:39 采纳率: 0%
浏览 5
已结题

selenium python

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
chrome_options.binary_location = "C:/Users/Administrator/AppData/Roaming/360se6/Application/360se.exe"  # 替换为你的 Chrome 浏览器的实际安装路径
# ChromeDriver 的路径
chromedriver_path = r'G:/project/LHSextract/package/chromedriver.exe'
# 创建 Service 对象并指定 ChromeDriver 的路径
service = Service(executable_path=chromedriver_path)
# 启动 WebDriver
driver = webdriver.Chrome(service=service, options=chrome_options)
# 设置隐式等待
driver.implicitly_wait(10)
# 打开网址
driver.get("http://10.242.32.4:7122/sso/login")
# 之后可以添加更多的操作,如登录操作等
# 填写登录信息
# 注意:以下ID 'username', 'password', 'captcha', 和 'login_button' 需要根据实际网页元素进行替换
username = driver.find_element(By.ID, 'username')
password = driver.find_element(By.ID, 'password')
validatecode = driver.find_element(By.ID, 'validateCode')
login_button = driver.find_element(By.CSS_SELECTOR, '.js-submit.tianze-loginbtn')
username.send_keys("xxxxxxxx")
password.send_keys("xxxxxxx")
# 等待手动输入验证码
temp = input ("Please enter the captcha and hit enter in the browser")
validatecode.send_keys(temp)
# 点击登录按钮
login_button.click()
# 之后可以添加额外的代码来处理登录后的页面或关闭浏览器
Databaseofparty = driver.find_elements(By.XPATH, '//img[contains(@src, "党组织和党员信息库.png")]')[1]
Databaseofparty.click()
wait = WebDriverWait(driver, 10)
droplist = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.avatar-wrapper.fs-dropdown-selfdefine')))
droplist.click()
input("Press Enter to exit...")

执行wait.until(EC.presence_of_element_located出错
,但是在审查元素ctrl+f里.avatar-wrapper.fs-dropdown-selfdefine可以唯一定位

img

img

img

img

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-26 21:58
    关注
    获得0.60元问题酬金

    引自微信小程序:皆我百晓生

    您可以尝试使用其他定位方法来选择class="user-role"元素,比如使用CSS选择器或者使用其他属性进行定位。以下是使用CSS选择器的示例代码:

    user_role = driver.find_element(By.CSS_SELECTOR, '.user-role')
    

    如果仍然无法成功选择到该元素,可能是因为该元素在页面加载完成前还未加载出来。您可以尝试添加显示等待,等待元素可见后再进行操作。例如:

    wait = WebDriverWait(driver, 10)
    user_role = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.user-role')))
    

    这样可以在元素可见后再继续执行后续操作。

    另外,如果还遇到问题,建议您提供更多相关的网页结构和错误信息,以便更好地帮助您解决问题。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月3日
  • 修改了问题 12月26日
  • 修改了问题 12月26日
  • 创建了问题 12月26日

悬赏问题

  • ¥15 关于链式代理v*n的配置
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!