查找web元素硒时出现问题



我无法在网站上定位web元素,网站的web元素是动态的,我试图定位的元素与其他元素的属性非常相似,只是有一些小的差异,比如整数的变化。当我刷新页面时,这些整数也会改变,所以我无法定位,有人能帮我吗?

我尝试了以下内容,但可能存在语法错误:

  1. 包含文本=WebDriverWait(browser, 15).until(EC.presence_of_element_located( (By.XPATH,"//div[contains(text(),'Type here...')]") ))

  2. Absolute Xpath和Rel Xpath(这些变化(

  3. 包含同级元素,包含父元素,但父元素和同级元素也无法定位

这里是元素<div contenteditable="true" class="cke_textarea_inline cke_editable cke_editable_inline cke_contents_ltr placeholder cke_show_borders" tabindex="0" spellcheck="true" role="textbox" aria-label="Rich Text Editor, editor15" title="Rich Text Editor, editor15" aria-describedby="cke_849" style="position: relative;" xpath="1">enter question here</div>的html

添加了一些空格((,这会在一定时间内引起问题,请删除该空格。此外,如果您可以共享html,那么我们可能会提供帮助。WebDriverWait(browser,15).until(EC.presence_of_element_located((By.XPATH,"//div[contains(text(),'Type here...')]")))

我删除空间不起作用,然后你可以尝试下面的xpath-

//div[text()='enter question here'][contains(@aria-label,'Rich Text Editor')]

如果确实没有你认为可靠的属性,你可以通过其中的文本来访问元素。我建议你做两件事:除非你没有其他选择,否则不要这样做;不要只使用//div,尽可能多地向路径添加XPATH信息。

driver.find_element_by_xpath('//div[text()="enter question here"]')

driver.find_element_by_xpath('//div[contains(text(),"enter question")]')

最新更新