我目前正在使用Python(Chrome驱动程序)使用Selenium Web Driver, 由于某种原因,我可以让它点击一个带有英文文本的按钮(在标签之间)但是当文本是希伯来语时它不起作用。 例如,我正在谷歌(.co.il)查看它。
当我尝试点击顶部的Gmail按钮时,它有效。但当我尝试点击“תמונות”代表希伯来语中的照片时,它发生了错误,甚至无法写入异常错误(UnicodeEncodeError:'ascii'编解码器无法编码位置86-91中的字符:序数不在范围内(128))。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome("C:\Users\User-PC\Desktop\chromedriver_win32\chromedriver.exe")
driver.get("http://www.google.co.il/")
linkslist = [u'תמונות']
try:
button = driver.find_element_by_link_text(linkslist[0])
driver.implicitly_wait(5)
button.click()
print(driver.current_url)
except Exception as er:
print "Error: ", format(er)
driver.close
driver.quit()
答案 0 :(得分:0)
这对我有用
driver.get('http://www.google.co.il/')
driver.find_element_by_link_text('תמונות').click()
答案 1 :(得分:0)
您的代码块中存在一个小问题。印刷声明不合适。这是工作代码:
from selenium import webdriver
driver = webdriver.Chrome(r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("http://www.google.co.il/")
linkslist = [u'תמונות']
try:
button = driver.find_element_by_link_text(linkslist[0])
driver.implicitly_wait(5)
button.click()
print(driver.current_url)
except Exception as er:
print ("Error: ", format(er))
driver.close()
driver.quit()
我的控制台上的输出是:
https://www.google.co.il/imghp?hl=iw&tab=wi
Process finished with exit code 0
现在根据您的更新,您会看到错误:
print ("Error: ", format(er)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 86-91: ordinal not in range(128)
由于您使用的IDE可能不支持 Unicode
字符,因此非常期待。因此,只有在将异常转换为可读的 utf-8
字符格式后,我们才会更改打印异常的行,如下所示:
print ("Error: ", format(er)).encode('utf-8')
或
print ("Error: ", format(er).encode('utf-8'))
让我更新适合您的选项。
答案 2 :(得分:0)
最后我找到了一个解决方案, 我用过 driver.find_element_by_link_text(linkslist [COUNT])。send_keys(Keys.ENTER) 而不仅仅是driver.find_elements_by_link_text(" texthere")。click()
感谢所有帮助,祝你有个愉快的一周=)