我无法在网站上定位web元素,网站的web元素是动态的,我试图定位的元素与其他元素的属性非常相似,只是有一些小的差异,比如整数的变化。当我刷新页面时,这些整数也会改变,所以我无法定位,有人能帮我吗?
我尝试了以下内容,但可能存在语法错误:
-
包含文本=
WebDriverWait(browser, 15).until(EC.presence_of_element_located( (By.XPATH,"//div[contains(text(),'Type here...')]") ))
-
Absolute Xpath和Rel Xpath(这些变化(
-
包含同级元素,包含父元素,但父元素和同级元素也无法定位
这里是元素<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")]')