不能点击希伯来语文本Selenium Web Driver Python

时间:2017-08-08 20:16:37

标签: python python-2.7 selenium selenium-webdriver selenium-chromedriver

我目前正在使用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()

3 个答案:

答案 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()

感谢所有帮助,祝你有个愉快的一周=)