selenium random id随机xpath和随机css选择器

时间:2018-04-11 01:47:44

标签: python selenium selenium-webdriver selenium-chromedriver

嗨我是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

2 个答案:

答案 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")