谢谢你让我在这里提问.我是刚接触Selify和XPath的人,我只是在try 使用Python创建一个不那么简单的网站.

我的问题是:

  1. 您能回答我提出的关于如何 Select 有问题的HTML元素的具体问题吗?
  2. 对于我在下面列出的学习资源,你还有什么补充吗(这些资源似乎很有帮助,但我似乎还不够先进,不能把它们应用到我的情况中)?

具体问题:我有一个如下所示的HTML文件,并希望提取‘data-tesd="QS-SELECT-Make"’元素(最后,我希望使用Selify来更新下拉菜单)

对于我的生活,我不能让它工作……

<div class = "a">
<div class = "ab">
<div class = "abc">
<div class = "abcd">
<select class="tya6p HaBLt A4yQa q0MnL" placeholder="Any" data-testid="qs-select- 
make"><option selected="" value="">Any</option>

使用Google Chrome Web开发人员,我已经发现"正确的"(尽管不是很好的方法)似乎是 [@id="root"]/div/div/article[1]/section/div/div[2]/div[1]/div[1]/div/select

尽管如此,以下代码try 将Make"Audi"插入下拉菜单时仍会失败,并显示无效的 Select 器异常:

make_string = "//select[//* 
[@id='root"]/div/div/article[1]/section/div/div[2]/div[1]/div[1]/div/select]option 
selected[text()='{}']".format("Audi") 

driver.find_element("xpath", make_string).click() #use selenium to click the button

有谁知道我做错了什么,有没有更好的办法?

关于问题2,资源.到目前为止,我已经使用了:

  • StackOverflow,一如既往的帮助,特别是this question
  • 一篇非常有用的Testsigma博文,它将我引向了Chrome浏览器Web开发人员,至少指向了The Path:here
  • selenium文档-写得非常好,但由于我是初学者,我还不能将一般概念应用到我的特定问题上……道歉:Here

推荐答案

使用下面的xpath来标识元素.请再加syncronisation次.

driver.find_element("xpath", "//select[@data-testid='qs-select-make']//option[text()='{}']".format("Audi")).click()

Python相关问答推荐

在Python中对分层父/子列表进行排序

可变参数数量的重载类型(args或kwargs)

C#使用程序从Python中执行Exec文件

Polars:用氨纶的其他部分替换氨纶的部分

python中的解释会在后台调用函数吗?

如何在Python中获取`Genericums`超级类型?

在两极中过滤

matplotlib + python foor loop

用fft计算指数复和代替求和来模拟衍射?

如何用FFT确定频变幅值

Pandas数据框上的滚动平均值,其中平均值的中心基于另一数据框的时间

为什么我的scipy.optimize.minimize(method=";newton-cg";)函数停留在局部最大值上?

将相应的值从第2列合并到第1列(Pandas )

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

在聚合中使用python-polars时如何计算模式

如何在Python中实现高效地支持字典和堆操作的缓存?

使用美汤对维基百科表格进行网络刮擦未返回任何内容

如何让PYTHON上的Selify连接到现有的Firefox实例-我无法连接到Marionette端口

根据边界点的属性将图划分为子图

为什么fizzbuzz在两个数字的条件出现在一个数字的条件之后时不起作用?