driver.find_element_by_xpath 验证页面元素text属性是否包含某个值报错

python +selenium 

当使用 driver.find_element_by_xpath函数,并且使用text属性包含/等于某个值的时候,直接写入变量会提示错误,如下图 

driver.find_element_by_xpath('//*[contains(text(),i]' ).click()

如果直接写上变量名称是没问题的。

 

driver.find_element_by_xpath 验证页面元素text属性是否包含某个值报错_第1张图片

代码如下:

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

i="hao123"
driver.find_element_by_xpath('//*[contains(text(),"'+i+'")]' ).click()
#driver.find_element_by_xpath('//*[contains(text(),"hao123")]' ).click()
sleep(1)

最后解决的办法是要将变量名字改成 "'+i+'" 才可以。至于为什么是这种鬼格式,我也不知道o(╥﹏╥)o

driver.find_element_by_xpath('//*[contains(text(),"'+i+'")]' ).click()

原始原因,是由于jquey版本的问题导致的。

 

另外:python2.7如果是英文的还是没问题,如果是中文,把上图代码变量i的hao123修改为新闻,仍然报错,是由于selenium编码的问题,还没有想到合适的解决方法。如果3.6版本是正常的。

 

参考文章:https://blog.csdn.net/tel13259437538/article/details/80474653

你可能感兴趣的:(Python,on,'Window',parameter,1,is,not,of,type,'El,selenium,text)