使用find_elemen_by_xpath时语法无效

时间:2014-10-07 12:56:25

标签: python selenium xpath selenium-webdriver

我正在尝试通过xpath找到元素并不断收到语法错误

它在我的xpath中将^标记放在冒号之前。

我在Chrome开发工具中生成xpath。在html中查找元素,右键单击它并选择Copy xpath。

C:\>python ebcm_login.py
  File "ebcm_login.py", line 47
    elem = driver.find_element_by_xpath("//*[@id="j_idt51:j_idt55_body"]/table/tbody/tr/td[2]/table/tbody/tr[6]/td[1]/input")
                                                        ^
SyntaxError: invalid syntax

C:\>python ebcm_login.py
  File "ebcm_login.py", line 48
    elem = driver.find_element_by_xpath("//*[@id="menuForm:j_idt57"]/table/tbody/tr/td[2]")
                                                         ^
SyntaxError: invalid syntax

C:\>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

1 个答案:

答案 0 :(得分:0)

尝试使用

elem = driver.find_element_by_xpath('//[@id="j_idt51:j_idt55_body"]/table/tbody/tr/td[2]/table/tbody/tr[6]/td[1]/input')

那里有重叠的引号。你可能会混淆它。 在您的示例中,您在现有双引号中放置了双引号。

例如:'"obanawev"'同样有效"'obanawev'"也有效,但不是""obanawev""

你甚至可以用三重引号括起来。然后你可以使用双引号和单引号,并且可以避免重叠引号。

例如:

elem = driver.find_element_by_xpath("""//[@id="j_idt51:j_idt55_body"]/table/tbody/tr/td[2]/table/tbody/tr[6]/td[1]/input""")