【问题标题】:invalid syntax when using find_elemen_by_xpath使用 find_elemen_by_xpath 时语法无效
【发布时间】:2014-10-07 12:56:25
【问题描述】:

我正在尝试通过 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.
>>>

【问题讨论】:

    标签: python selenium xpath selenium-webdriver


    【解决方案1】:

    尝试使用

    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""")
    

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多