嗨,我是使用Python的Selenium初学者..问题是id,xpath和css选择器包含随机id..我无法解决这个问题,因为每次我跳入页面时都有随机ID我已经尝试使用xpath,id,css选择器甚至类名,但没有工作。希望有人可以帮助我,对不起语法不好
<div role="option" id="listitem1innerListBoxjqxWidgetac7737dcf714" class="jqx-listitem-element" style="height: 24px; top: 25px; left: 0px;" aria-selected="true"><span style="white-space: pre; display: block; visibility: inherit; width: 193px;" class="jqx-listitem-state-normal jqx-listitem-state-normal-default jqx-item jqx-item-default jqx-rc-all jqx-rc-all-default jqx-listitem-state-selected jqx-listitem-state-selected-default jqx-fill-state-pressed jqx-fill-state-pressed-default">0900</span></div>
<span style="white-space: pre; display: block; visibility: inherit; width: 193px;" class="jqx-listitem-state-normal jqx-listitem-state-normal-default jqx-item jqx-item-default jqx-rc-all jqx-rc-all-default jqx-listitem-state-selected jqx-listitem-state-selected-default jqx-fill-state-pressed jqx-fill-state-pressed-default">0900</span>
//*[@id="listitem1innerListBoxjqxWidgetac7737dcf714"]/span <----Xpath
#listitem1innerListBoxjqxWidgetac7737dcf714 > span <---css selector
每次我去页面时都有随机ID。希望任何人都可以解决我的问题tq
根据您提供的 HTML 和您的代码试用来定位元素,您可以使用任一定位器策略:
-
css_selector
:context.browser.find_element_by_css_selector("div.jqx-listitem-element[id^='listitem1innerListBox'] > span")
-
xpath
:context.browser.find_element_by_xpath("//div[@class='jqx-listitem-element' and starts-with(@id,'listitem1innerListBox')]/span")
您可以使用部分 id listitem1innerListBox
context.browser.find_element_by_xpath("//*[contains(@id, 'listitem1innerListBox')]/span")
context.browser.find_element_by_css_selector("[id*='listitem1innerListBox'] > span")