【问题标题】:Invalid Selector Error using CSS Selector and href使用 CSS 选择器和 href 的无效选择器错误
【发布时间】:2020-02-10 17:33:10
【问题描述】:

我正在尝试使用带有部分链接的 css 选择器和 href 查找元素,但我不断收到无效选择器错误

我做错了什么?

<a href="javascript:shipdateCheck('updateShipDate',#####,'false');" class="actionlink2">
    <img src="images/save-16x16.bmp" width="12px" height="12px" alt="Update 
     Ship Date For ######" border="0">
</a>

##### 是随机生成的字符串形式的数字。

date_save = driver.find_element_by_css_selector('a[href*="javascript:shipdateCheck("updateShipDate","]')

【问题讨论】:

  • 能否添加您要查找的元素的html?
  • 我添加了元素的HTML

标签: python selenium selenium-webdriver


【解决方案1】:

您在 href 中有一个 * 的错字。此外,如果您不使用实际的等于值,那么您可以使用包含。如果双引号中有双引号,则需要使用 \" 对其进行转义。

date_save = driver.find_element_by_css_selector('a[contains(@href, "javascript:shipdateCheck(\"updateShipDate\",")]')

【讨论】:

  • 我之前用过*=表示元素以字符串开头。它不适用于href吗?它适用于名称和类型
  • 您在答案中混合了 CSS 选择器语法和 XPath 语法。所需要的只是逃避内部"s 并添加缺少的),它应该可以工作。 contains() 是一个 XPath 方法。
【解决方案2】:

点击锚标签诱导WebDriverWait()element_to_be_clickable()和下面的css选择器。

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a[href*=\"javascript:shipdateCheck('updateShipDate'\"]"))).click()

您需要导入以下库。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-25
    • 2012-01-20
    • 2019-12-03
    • 2023-03-28
    • 2011-07-03
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多