当前位置: 首页 > 知识库问答 >
问题:

使用Selenium单击后查找元素

唐修能
2023-03-14

我搞不懂这个。

我在这个网站上工作,我使用Python中的selenium来单击类名“yellow showPopupUnder”下的第一个元素(屏幕的主要部分有20行关于房屋的黄色信息)。

当我让Selenium点击该行后,它会打开并显示更多信息。我对有“选中”和“未选中”框的部分感兴趣。这些复选框位于这样的div中:

<div class="v_checked">

未选中的框位于一个div中,如下所示:

<div class="v_unchecked">

我试着用几种方法联系他们:

driver.find_element_by_class_name('v_checked')
driver.find_element_by_css_selector(".v_checked")
driver.find_element_by_xpath("//div[@class='v_checked']")

我还尝试使用绝对xpath。所有这些都不起作用,我得到一个“NoTouchElementException:没有这样的元素:无法定位元素”

有人知道如何从这些盒子中检索数据吗?

谢谢你!

共有1个答案

壤驷兴朝
2023-03-14

有一个iframe用于打开并显示更多信息,其中显示了这些复选框。你必须导航到那个iframe。你可以这样做:

## switch to the iframe ##
driver.switch_to_frame(driver.find_element_by_id("ad_iframe_2_1_1731213"))
## then you can search your checkbox##
driver.find_element_by_class_name('v_checked')
## Switch back to the "default content" (that is, out of the iframes) ##
driver.switch_to_default_content()
 类似资料:
  • 我一直在忙着自动化这个选项页面,因为它提供了各种选项,每个选项都有自己的子选项,所以我不想花时间通过它们的xpath(或CSS)标识和声明所有元素。因此,我有一个可靠的代码,可以很好地找到HTML标记中的文本标识符。 通过运行这个,我得到一个打印输出,就像 > 里程数 等等。所以嘣!我知道它们已经被识别,但我的e.click()实际上并没有点击。当我开始测试时,我没有得到任何错误,它只是说它通过了

  • 问题内容: 我正在寻找网站。在检查元素中看到以下内容: 需要获取并按标题单击元素。像这样: 但是通过标题。 问题答案: 就像巴拉克·马诺斯(Barak Manos)所说,答案是: 以[0]结尾的情况是列表。

  • 如何使用selenium Python从主机A(在本例中为jsfiddle.net)单击此处的红色按钮?(java脚本限制策略错误,不让我去做)。我也不想直接点击红色按钮。谢了。

  • 我试图使用Selenium来单击::after伪元素。我意识到这无法通过WebDriver直接实现,但似乎无法找到一种使用Javascript实现的方法。 下面是DOM的外观: 上面的元素是这样的。对象的左边是按钮元素,后面的:元素是右边,箭头在单击时会下拉框。正如你所看到的,右边没有任何标识符,这就是为什么很难做到这一点的部分原因。 我在stackoverflow中看到了这两个链接,并试图将答案

  • 我正试图点击一个硒元素。它是一个复选框,包含以下HTML代码: 包含复选框和术语的段落代码: 我尝试过三种不同的方法,但都不奏效: 请帮助解决其他问题。

  • 我已经花了几个小时试图找到使用Selenium WebDriver查找元素的方法。我假设我需要使用driver.find元素(By.xpath ("")), 但我不太确定如何使用。 我需要找到并单击“clickon”元素。问题是该元素的一部分正在更改(请参见屏幕截图),我需要从文件中提取并放入xpath。 我将感谢任何帮助。