首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Selenium测试点击not函数

Django Selenium测试点击not函数
EN

Stack Overflow用户
提问于 2021-02-07 18:32:06
回答 2查看 96关注 0票数 0

在我的主页的Selenium测试中,我遇到了以下问题:

我的页面上有很多按钮。单击其中一个选项时,选择列表将通过javascript函数填充多个选项。单击其中一个按钮后,选择列表可以如下所示:

代码语言:javascript
复制
<select id="selectionList" name="List1" size="10" style="width:100%;">
<option style="color:#0275d8">Item Type 1</option>
<option onclick="onSelection()" id="Item_1">Item 1</option>
<option onclick="onSelection()" id="Item_2">Item 2</option>
<option onclick="onSelection()" id="Item_3">Item 3</option>
<option onclick="onSelection()" id="Item_4">Item 4</option>
<option onclick="onSelection()" id="Item_5">Item 5</option>
<option onclick="onSelection()" id="Item_6">Item 6</option>
<option style="color:#0275d8">Item Type 2</option>
<option onclick="onSelection()" id="Item_7">Item 7</option>
<option onclick="onSelection()" id="Item_8">Item 8</option>
<option onclick="onSelection()" id="Item_9">Item 9</option>
<option onclick="onSelection()" id="Item_10">Item 10</option>
</select>

在我的测试中,我使用以下方法单击其中一项。

代码语言:javascript
复制
WebDriverWait(self.browser, 60).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='Item_1']"))).click()

我确实看到项目1被高亮显示,但是onSelection()函数没有被调用。

我也试过这个

代码语言:javascript
复制
time.sleep(10)
self.browser.find_element_by_id("Item_1").click()

同样,项目1被高亮显示,但函数onSelection()没有被调用。

知道如何解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-07 18:54:36

这似乎是一个已知的问题

https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/2556

该问题被标记为已关闭,但似乎只是因为最初的记者放弃了该问题和/或因为它是从旧的问题跟踪器中报告的一个导入错误。

据报道,在讨论中有一个变通办法。

代码语言:javascript
复制
driver.action.click_and_hold(element).perform
sleep(1)
driver.action.release.perform

我认为代码是非正式的,因为AFAIK没有driver.action。相反,您必须执行actions = ActionChains(driver)

有关更多信息,请参见此处:https://www.tutorialspoint.com/what-are-actionchains-class-in-selenium-with-python

票数 2
EN

Stack Overflow用户

发布于 2021-02-07 18:48:29

该元素是一个html-选择元素,因此您需要使用Select()类。

要使用<option>选择文本作为条目1,使用,您需要为element_to_be_clickable()导出WebDriverWait,您可以使用下面的定位器策略之一

  • 使用CSS_SELECTOR: select =select( 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,,WebDriverWait(self.browser,“select#selectionListname=‘List1’”))select.select_by_visible_text(项目1)
  • 使用XPATH: select =select( 20).until(EC.element_to_be_clickable((By.XPATH,,WebDriverWait(self.browser,self.browser "//select@id='selectionList‘和@name=’List1‘))select.select_by_visible_text(项目1)
  • 注意事项:您必须添加以下导入: 从selenium.webdriver.support.ui导入选择从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

参考文献

您可以在以下几个方面找到相关的讨论:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66091616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档