python +selenium
当使用 driver.find_element_by_xpath函数,并且使用text属性包含/等于某个值的时候,直接写入变量会提示错误,如下图
driver.find_element_by_xpath('//*[contains(text(),i]' ).click()
如果直接写上变量名称是没问题的。
代码如下:
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