首页 > IT技术 > python > 正文

selenium 对js的输入变量方法
2017-01-04 09:16:11???来源:???评论:0 点击:

对input执行输入直接设置value属性, sendkeys不稳定
driver.find_element_by_xpath(input[@id = "kw"])
? 上面的代码,相信很多学习selenium + python 的朋友都很熟悉,就是定位百度首页搜索框的代码,如果我们想把"kw",用一个变量来表示该怎么操作呢?
?
目前,我知道的有两种方法,如下,是定位百度搜索框,点击搜索的代码,在XPath定位的过程中,用了变量:
?
# encoding:utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
?
# 下面这一段使用的是python中变量的方法,简单吧!
def enter(var):
? ? driver.find_element_by_xpath("//input[@id = '%s']" % var).send_keys("haha")
enter('kw')
time.sleep(3)
?
#下面这一段使用的好像是一种固定格式,在JS中有看到
def enter1(var1):
? ? driver.find_element_by_xpath("//input[@id = '" + var1 + "']").click()
enter1('su')
time.sleep(3)
driver.quit()
?
1、 对input执行输入
直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定
?
比如:
?
?
selenium常用的js总结
//inputbox is a WebElement
javascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].value=\"北京\"", from_inpox);
对此可以封装一个typeQuick的方法
?
/**
* @author Young
* @param locator
* @param values
* @throws Exception
*/
protected void typeQuick(Locator locator, String values) throws Exception {
WebElement e = findElement(driver, locator);
log.info("type value is: " + values);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].value=\""+values+"\"", e);
去掉只读属性
?
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].removeAttribute(\"+"readonly"+\")", e); 2.对富文本框的操作 JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement editor = driver.findElement(By.tagName("body"));
js.executeScript( "arguments[0].innerHTML = '

Selenium Test

I love Selenium
this article Post By Selenium WebDriver

Create By Young

'", editor);

相关热词搜索:js Javascript 搜索框

上一篇:AES算法的加密和解密
下一篇:最后一页

分享到: 收藏
评论排行