如何在python selenium中的css选择器中包含regex



我正在尝试使用CSS选择器提取文本。由于变量本质上是动态的,因此它们不断更新。

#profileCard-ACoAABI4A30BKLei-DtaS6B6vQo-3ejw-nzI1W8-EDUCATION-en-US 
this is a CSS selector
driver.find_element_by_css_selector('#profileCard-ACoAABI4A30BKLei-DtaS6B6vQo-3ejw-nzI1W8-EDUCATION-en-US').text
x_path = //*[@id="profileCard-ACoAABI4A30BKLei-DtaS6B6vQo-3ejw-nzI1W8-EDUCATION-en-US"]
# here i tried to apply the regex
driver.find_element_by_xpath("//*[ends-with(@id,'EDUCATION-en-US')]") 

但是我得到了一个错误"InvalidSelectorException">
有什么方法可以在没有错误的情况下获得数据吗?

"ACoAABI4A30BKLei-DtaS6B6vQo-3ejw-nzI1W8"此路径将不断更新。"#profileCard","EDUCATION en US"此不会有任何更改

解决这个问题的任何帮助或线索都将非常有帮助。提前感谢

这应该是您想要的:

driver.find_element_by_css_selector('[id^="profileCard-"][id$="-EDUCATION-en-US"]').text

CCD_ 1表示CCD_。

$表示id应该以什么结束。

对于id属性的值,如:

#profileCard-ACoAABI4A30BKLei-DtaS6B6vQo-3ejw-nzI1W8-EDUCATION-en-US

xpath不支持ends-with()。相反,您可以使用以下任一选项:

  • 使用xpath:

    driver.find_element(By.XPATH, "//*[starts-with(@id, 'profileCard') and contains(@id, 'EDUCATION-en-US')]").text
    
  • 使用css_selector

    driver.find_element(By.CSS_SELECTOR, "[id^='profileCard'][id$='EDUCATION-en-US']").text
    

相关内容

  • 没有找到相关文章

最新更新