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

如何点击与硒在python onhtml没有类,id或名称

梁兴修
2023-03-14

我试图找到一种方法来点击“X”按钮,但我找不到方法来点击这个按钮。

元素副本:

<div style="cursor: pointer; float:right; border-radius: 3px; background-color: red; font-size: 10px; color: white; height: 15px; width:15px; line-height: 15px;" onclick="fecharModal();">X</div>

Xpath:

//*[@id="meu_modal"]/div

Css选择器:

#meu_modal > div

尝试:

driver.find_element_by_css_selector("a[onclick*=fecharModal]").click();

进口:

从selenium从selenium导入webdriver。网络驱动程序。常见的密钥从selenium导入密钥。网络驱动程序。支持ui导入从selenium中选择。网络驱动程序。常见的由硒进口。网络驱动程序。支持ui从selenium导入WebDriverWait。网络驱动程序。支持从selenium将预期的_条件作为EC导入。常见的异常从selenium导入NoSuchElementException。网络驱动程序。常见的操作链导入操作链导入时间在此处输入代码

共有2个答案

公冶宏深
2023-03-14

这似乎是一个基于角度的应用程序,主要是WebDriverWait应该完成这项工作,但仍然低于solutionillustartSelenium中所有单击web元素的方法。代码试用2更可取,并且是最佳实践。

我会用这个xpath

//div[@onclick='fecharModal();' and text()='X']

代码试验1:

time.sleep(5)
driver.find_element_by_xpath("//div[@onclick='fecharModal();' and text()='X']").click()

代码试验2:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@onclick='fecharModal();' and text()='X']"))).click()

代码试用3:

time.sleep(5)
button = driver.find_element_by_xpath("//div[@onclick='fecharModal();' and text()='X']")
driver.execute_script("arguments[0].click();", button)

代码试验4:

time.sleep(5)
button = driver.find_element_by_xpath("//div[@onclick='fecharModal();' and text()='X']")
ActionChains(driver).move_to_element(button).click().perform()

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains

PS:如果我们在HTMLDOM中有唯一的条目,请在devtools(谷歌浏览器)中查看。

检查步骤:

按F12Chrome

尉迟高澹
2023-03-14

假设您提供的xpath是准确的,我建议您尝试使用此代码,这可能对您有用。

yourEle = driver.find_element_by_xpath("//*[@id='meu_modal']/div")
driver.execute_script("arguments[0].click();", yourEle)

 类似资料:
  • 我尝试使用xpath和classname来定位并单击按钮。然而,什么都不管用。 driver.find_element(By.XPATH,“//button[@class='sc-cqCuEk ffSPoi MuiButtonBase root sc dliRfk hLpdQI MuiAccordionSummary root Mui展开的MuiAccountionSummarygutters s

  • 我必须找出XPath的代码: 使用firebug,XPath是: /html/body/div/div/div[4]/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody/tr/td /table/tbody/tr[5]/td/div/div/form/table/tbody/tr[2]/td[4]/输入 但我如何能有一个更短的XPath?例

  • 最近,我用硒在网站上抓取了一些信息。我想做的只是点击“上个月的按钮”。 所以我写这样的代码 但它不起作用,我改变了很多次,像这样改变代码 这些都不管用。当我尝试使用三个试用版中的第一个时(即:web driver . find _ element _ by _ CSS _ selector(' a . ui-icon ui-icon-circle-triangle-w ')。单击()),弹出的错误

  • 问题内容: 我正在尝试通过angularjs在html中查找元素。 这是html: 我试图通过类名多文件来获取按钮元素,然后我尝试 但是它不起作用,并且尝试过,但仅对标签起作用。 在angularjs中,有没有可以通过ID或类名获取元素的函数? 问题答案: 是DOM文档上的函数。它既不是jQuery也不是jqLit​​e函数。 使用时不要在类名前添加句号: 将其包装在jqLit​​e中(如果在An

  • 我正在使用硒网络驱动程序与python来浏览网站,我无法弄清楚如何选择这个按钮。 按钮被一个类包围,但在该类中有两个按钮。我试过使用 没有明显的id,所以我被卡住了,如果这是琐碎的,我道歉。我如何点击这个按钮?