我目前正在使用Python(Chrome驱动程序(玩Selenium Web驱动程序, 出于某种原因,我可以让它单击带有英文文本(标签之间(的按钮,但当文本为希伯来语时它不起作用。 举个例子,我正在用谷歌(.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:UsersUser-PCDesktopchromedriver_win32chromedriver.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()
这对我有用
driver.get('http://www.google.co.il/')
driver.find_element_by_link_text('תמונות').click()
您的代码块中存在一个小问题。打印声明不恰当。这是工作代码:
from selenium import webdriver
driver = webdriver.Chrome(r'C:UtilityBrowserDriverschromedriver.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'))
让我更新适合您的选项。
最后我得出了一个解决方案, 我用过 driver.find_element_by_link_text(链接列表[计数](.send_keys(Keys.ENTER( 而不仅仅是driver.find_elements_by_link_text("texthere"(.click((
感谢所有的帮助,祝你度过一个美好的一周=(