繁体   English   中英

Python Selenium 如何找到带有变化文本的元素

[英]Python Selenium how to find element with changing text

我正在开发一个自动完成问题的程序。 但问题的答案是选择,并且每次都会改变。 有四个选择,我只希望它单击其中一个。 这项工作,但文本每次都会改变: driver.find_element_by_xpath("//p[contains(text(),'The home of a person/ company.')]").click()我试过这个: driver.find_element_by_class_name("choices").click()它不起作用。 因此,我希望无论文本部分是什么,程序都可以搜索并单击它。 但只点击其中一个选项。

带有html的网站图片

HTML:<p class="choices" xpath="1">The home of a person/ company.</p>
xpath of this://p[contains(text(),'The home of a person/ company.')]
absXpath:/html[1]/body[1]/div[2]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[3]/div[1]/div[3]/div[1]/label[4]/p[1]

请帮忙。

首先检查您是否使用了正确的 xpath,因为 xpath 会随着选项的 position 的变化而变化。 此外,根据您的代码,您可以为这个问题使用特定的 id,因为 class 可以为多个元素提供,但 id 是唯一的。

要单击第一个选项,请使用 css 选择器:

driver.find_element_by_css_selector(".tbtow.exercise_frame>.each_question.mc_question>label:nth-child(1)>p")

自己检查课程的拼写,因为我是从您提供的图片中输入的。 此外,尝试使用:nth-of-type(1)而不是:nth-child(1)要更改 position 使用:nth-of-type(2) , :nth-of-type(3)等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM