首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找变量下拉列表中任何“城市”的Xpath?

如何查找变量下拉列表中任何“城市”的Xpath?
EN

Stack Overflow用户
提问于 2022-02-14 07:14:23
回答 1查看 58关注 0票数 0
  1. I安装了Chrome插件“选择器集线器”.

  1. I打开网站: spicejet.com

  1. 我选择了一些随机的城市从下拉。

  1. 的帮助下,在“选择器集线器”的帮助下,我获得了该城市的Xpath代码:

//div@class=‘css-1 dbjc4n r-14lw9ot r-z2wwpe r-vgw6uq r-156 q2ks r-urutk0 r-8 8uuktl r-136ojw6'//div11

在控制台中验证这个Xpath代码时,它会显示0匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-14 08:21:53

这个网站是建立在ReactJ作为前端的基础上的,如果我没有错的话,找到ReactJs网站的元素有点困难;另外,如果你依赖某个定位器查找工具,它会变得更加困难。建立自己的定位策略总是比依赖工具更好,特别是对于使用React、Vue等构建的网站。

话虽如此,这里的策略是找到相对缩小的相对定位器,然后由于您正在寻找一个随机选择的城市,首先收集所有的城市,然后应用random。下面是它的结论:

我收集了一些城市,但随之而来的是一些不想要的东西(我的亲属定位器),我检查它们,如果它们被捡起来,我就把它们分发出去,只有当一个城市被随机选择时,我才点击它。检查此代码:

代码语言:javascript
复制
import random    

driver.get("https://www.spicejet.com/")
time.sleep(10)
driver.find_element(By.XPATH, "//div[@data-testid='to-testID-destination']").click()
time.sleep(2)
cities = driver.find_elements(By.XPATH, "//div[@data-testid='to-testID-destination']//div[@data-focusable='true']")
print(len(cities))
x = random.choice(cities)
if x.text in ['To', 'India', 'International']:
    pass
else:
    print(x.text)
    x.click()
time.sleep(5)
driver.quit()

输出:

代码语言:javascript
复制
Pakyong
Pakyong Airport
PYG

Process finished with exit code 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71108271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档