python clear用法_python 解决selenium 中的 .clear()方法失效问题

最近在使用selenium做一个数字货币的自动化脚本时,遇到一个问题就是okex网站的input使用clear()方法居然无法清空,但是后来试了好多次发现方法是可以使用的,而且这个网站修改input的value也没用,必须在文本框里修改才行,本次的目的就是要清除输入框的默认值,然而clear()没有反应,最后还是用了别的方法解决了问题,那就是使用鼠标双击事件,全选后输入内容。

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

from selenium. webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()

#延时等待

wait = WebDriverWait(browser, 1)

BL = str(float((X).split('%')[0]) + 0.01)

#获取节点对象

Ratio = wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="root"]/div/div/div/div[1]/div[2]/div[4]/div/div/div[2]/div/div[1]/div[3]/div[2]/input')))

#双击事件

ActionChains(browser).double_click(Ratio).perform()

#输入内容

Ratio.send_keys(BL)

补充知识:selenium常见方法(clear(),send_keys(),click(),submit())实例

我就废话不多说了,大家还是直接看代码吧~

#!/usr/bin/python

# -- coding: UTF-8 --

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get(“https://passport.csdn.net/account/login?ref=toolbar“)

driver.find_element_by_css_selector(“input#username”).clear() #清空输入框内的提示信息,例如用户名,密码等提示信息,如果直接输入内容,可能会与输入框的默认提示信息拼接,从而造成输入信息的错误,这是clear()将会变得非常有用

driver.find_element_by_css_selector(“input#username”).send_keys(“1285154416@qq.com”) #用于在一个输入框内输入XX内容

driver.find_element_by_css_selector(“input#password”).clear()

driver.find_element_by_css_selector(“input#password”).send_keys(“123456”)

driver.find_element_by_css_selector(“input.logging”).submit()#用于对信息进行提交,也可以使用click()进行代替,submit()要求提交对象是一个表单,click()更强调事件的独立性

time.sleep(10)

driver.quit()

以上这篇python 解决selenium 中的 .clear()方法失效问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Selenium进行自动化测试时,有时会遇到警报框(Alert)弹出的情况。对于这种情况,我们可以使用Selenium的switch_to.alert()方法来切换到警报框并进行操作。然而,由于警报框通常会遮挡页面内容,因此在进行截图时可能无法正确地截取页面内容。 为解决这个问题,可以尝试以下几种方法: 1. 利用JS代码关闭警报框 在Selenium,我们可以使用execute_script()方法来执行JavaScript代码。因此,如果警报框不是必须要处理的,我们可以通过JS代码来关闭它,然后再进行截图。 示例代码: ```python alert = driver.switch_to.alert alert.dismiss() # 关闭警报框 # 进行截图 driver.save_screenshot('screenshot.png') ``` 2. 使用Pillow库对截图进行修剪 Pillow是Python一个强大的图像处理库,我们可以使用它对截图进行修剪,只保留我们需要的部分。具体操作如下: ```python from PIL import Image # 获取页面大小 width = driver.execute_script("return document.documentElement.scrollWidth") height = driver.execute_script("return document.documentElement.scrollHeight") # 进行截图 screenshot = driver.get_screenshot_as_png() image = Image.open(BytesIO(screenshot)) # 修剪截图 left = 0 top = 0 right = width bottom = height - 100 # 剔除警报框的高度 image = image.crop((left, top, right, bottom)) # 保存截图 image.save('screenshot.png') ``` 通过以上两种方法,我们可以在Selenium正确地截取页面内容,避免了警报框对截图的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值