嗨我是selenium的初学者用python ..而问题是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
答案 0 :(得分:0)
您可以使用部分ID listitem1innerListBox
context.browser.find_element_by_xpath("//*[contains(@id, 'listitem1innerListBox')]/span")
context.browser.find_element_by_css_selector("[id*='listitem1innerListBox'] > span")
答案 1 :(得分:0)
根据您提供的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")