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

Selenium-python2.7:单击模式表复选框(在Selenium IDE之后)

孙经艺
2023-03-14

我认为我的问题在某种程度上与这篇文章有关——不能点击模态中的元素

我点击一个元素,它会打开一个模式表。然后,我想在一个长列表中选择一个特定的检查,但是Selenium给我一个错误。

我就是这么做的:

我首先使用Selenium IDE进行了测试:首先我记录了操作,但当我尝试在日志中重放它们时,我得到了这个:

Running 'Step2_sele'
1.open on /reserve-space/... OK
2.click on css=a[title="Locations"] > span... OK
3.click on linkText=Add/Remove Locations... OK
4.Trying to find xpath=//input[@value='2427']... Failed:
Element is not currently visible and may not be manipulated

我认为我应该给元素更多的时间来显示,我用Python编写了这个

browser = webdriver.Chrome()
browser.get(url_res)
time.sleep(10)
browser.find_element_by_css_selector('a[title="Locations"]>span').click()
time.sleep(10)
browser.find_element_by_css_selector('a.dynamic-filter-item-add.summary').click()
time.sleep(10)
browser.find_element_by_xpath("xpath=//input[@value='2427']").click()

但我发现了另一个错误

Traceback (most recent call last):
  File "bot.py", line 69, in <module>
    browser.find_element_by_xpath("xpath=//input[@value='2427']").click()
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 393, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 966, in find_element
    'value': value})['value']
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression xpath=//input[@value='2427'] because of the following error:
TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type.
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.16299 x86_64)

共有1个答案

祁俊拔
2023-03-14

我假设xpath字符串导致了这个问题。如果我的假设是正确的,那么以下几点应该有效:

browser.find_element_by_xpath("//input[@value='2427']").click()
 类似资料:
  • 我目前正在工作Java/Selenium webdriver自动化。然而,我被困在这个特定的部分,我无法使webdriver点击基于值的复选框。 当我不使用xpath的Axes部分时,它可以工作,但是它只能选中第一个复选框 下面是html的一个片段

  • 当我第一次点击它的时候,它点击了,但是没有关掉... 我试过这个,它检查和取消检查,但只有一次。 这个对我也不起作用。 null null

  • 在Chrome中使用Selenium IDE,我正在网站上测试一个过程。 我有一个网站,在那里我需要点击一个复选框接受使用条款,隐私条款等登录后。通过Selenium,我可以毫无问题地勾选这些框,但我无法勾选客户条款。我必须先下载这些,没有问题。不过,Selenium不会选中“接受”框。 我正在使用整个xpath,当我告诉Selenium给我看网站中的元素时,它给我看了正确的一个。我直接从Chro

  • 问题内容: 角度1.2: 我的功能状态不正确? 单击后,我想要状态。 问题答案: 和的执行顺序不明确,因为它们没有定义明确的优先级。相反,你应该使用或上,以确保您获得的正确值 模型 变量。 在您的情况下,这应该可以工作:

  • 使用Selenium和Java实现测试自动化。 有一个页面必须运行IE(而不是Chrome)。我相信它也使用了ColdFusion。无论如何,单击箭头会弹出复选框菜单。但是,这个菜单不是普通的html,而是Java脚本(见下文)。这只是javascript函数的一部分。 我需要选择一个选项。基本上没有直接的。我打印页面源代码,并尝试执行一个(driver.findelements(by.xpath

  • 我有以下html文本: 我试图点击复选框,其中数据111在同一行中。 我正在尝试这样做: 页FindChildByXPath(//span[contains(text(),'111')]/parent::td/previous sibling::td/input[@name='caller\u incrollment\u form:enrollmentParticipantSelectionTab