我有一个下拉菜单,“选择工作区”,下面是xpath(使用firebug)和html代码。 问题是xpath不断变化。如何为此参数化xpath? 就像,使用一个xpath,我需要编写一个可以用来调用另一个的函数。
xpath - > .//*[@id='step-content-2']/div/md-content/form/div/div[1]/div[1]/md-card[1]/md-card-content/form-field-panel/div/ul/li[2]/div/div/div/span/span/span[1]
html - &gt; <span class="k-input" unselectable="on">Select Work Area...</span>
下拉列表中包含4个名称,下面是xpath和html
xpath - &gt; html/body/div[3]/div/div[3]/ul/li[1]
html - &gt; <li class="k-item" data-offset-index="0" unselectable="on" role="option" tabindex="-1">Cheyenne</li>
xpath - &gt; html/body/div[3]/div/div[3]/ul/li[2]
html - &gt; <li class="k-item" data-offset-index="1" unselectable="on" role="option" tabindex="-1">Pueblo</li>
还有2个。
我的代码:
def _selectWorkArea(self, text):
self.ui.driver.find_element_by_xpath('//li[contains(text()=\'{}\')'.format(text)).click()
def selectName(self, name):
self._selectWorkArea(name)
答案 0 :(得分:0)
为什么不使用非随机生成的内容,例如span文本?
所以你可以这样做:
self.ui.driver.find_element_by_xpath("//span[text()='Select Work Area...']")