gpt4 book ai didi

python - 通过下拉菜单搜索并通过文本选择元素

转载 作者:行者123 更新时间:2023-12-04 08:15:29 26 4
gpt4 key购买 nike

我正在尝试更改 Statement Typeselenium on this website ,来自 AnnualQuarterly :
What I want
我在这里有“季度”元素的 x 路径:

//*[@id="menu_A"]/ul/li[3]/a
...这是我的代码:
quarterly_select = driver.find_element_by_xpath('//*[@id="menu_A"]')
quarterly_select.click()
quarterly_select = driver.find_element_by_xpath('//*[@id="menu_A"]/ul/li[2]/a')
quarterly_select.click()
现在,我知道我可以选择列表的第三个元素并完成,但有些公司不每半年报告一次,因此,“季度”元素有时是下拉列表中的第二个元素,而其他第三个元素次。
所以,我想我可以只搜索包含“Quarterly”文本的下拉元素,所以这就是我目前想到的
//*[@id="menu_A"]/ul/li[text()="Quarterly"]/a
但这不起作用并引发以下错误:
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="menu_A"]/ul/li[text()="Quarterly"]/a"}
我不知道该怎么做。如何找到此下拉列表的“季度”元素?

最佳答案

如果你改变

//*[@id="menu_A"]/ul/li[text()="Quarterly"]/a
↑↑

//*[@id="menu_A"]/ul/li/a[text()="Quarterly"]
↑↑
......它似乎工作得很好。请注意, anchor 中的文本“Quarterly”,而不是列表项:
下拉菜单的结构:
<li>
<a>Annual</a> <-- Selected element; initially "Annual",
but changes to whatever item is selected
<ul>
<li>
<a>Annual</a>
</li>
<li>
<a>Semi-annual</a>
</li>
<li>
<a>Quarterly</a> <-- What you want to click on.
As you can see, "Quarterly"
is contained within an anchor.
</li>
</ul>
</li>
这就是为什么你应该拥有 .../li/a[text...]而不是 .../li/[text...]/a demo
全码:
from selenium import webdriver

driver = webdriver.Chrome()

url = "http://financials.morningstar.com/income-statement/is.html?t=ORTX"
driver.get(url)

quarterly_select = driver.find_element_by_xpath('//*[@id="menu_A"]')
quarterly_select.click()
quarterly_select = driver.find_element_by_xpath('//*[@id="menu_A"]/ul/li/a[text()="Quarterly"]')
quarterly_select.click()

关于python - 通过下拉菜单搜索并通过文本选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65724403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com