在python selenium中,如何为下面的代码创建xpath,只需要id和class:
<button type="button" id="ext-gen756" class=" x-btn-text">Save</button>
我还需要从下面选择全局ID而不点击它。
<div class="x-combo-list-item">Global ID</div>
我的以下解决方案无效 -
//div[@class='x-combo-list-item']/div[contains(.,'Global ID')]
我不想提及{ - 1}}序列号,如 -
droplist
答案 0 :(得分:3)
如果您想在id
尝试联合class
和xpath
,请尝试这样做 -
driver.find_element_by_xpath('//button[@id="ext-gen756"][@class=" x-btn-text"]');
您也可以使用AND
-
driver.find_element_by_xpath('//button[@id="ext-gen756" and @class=" x-btn-text"]');
<强> EDITED 强>
您的xpath
似乎不正确。使用以下 -
driver.find_element_by_xpath('//div[@class="x-combo-list-item"][contains(.,"Global ID")]');
答案 1 :(得分:0)
在很长一段时间看了之后回答我自己的问题。当我在xpath主题中不熟悉时,该问题被发布了。
<button type="button" id="ext-gen756" class=" x-btn-text">Save</button>
在id和class方面:
driver.find_element_by_xpath("//button[@id='ext-gen756'][@class=' x-btn-text']")
有时,如果Id是动态的,并且每次重新加载页面都会更改,那么您可以尝试:
driver.find_element_by_xpath("//button[@type='Save'][contains(@id,'ext-gen')][@class=' x-btn-text']")
这里我使用@type和@id包含选项作为前缀(ext-gen)通常保持相同的动态ID