document.querySelector.click;硒不起作用$ 0.click;未定义

问题描述

我试图单击带有硒的按钮。我已经尝试过用$ 0.click();来访问Chrome和Firefox控制台。可以正常工作,但是在使用选择器进行测试时不起作用,“ undefined”,document.querySelector(“#td”)。click();。

我尝试使用硒不起作用。

HTML:

<td id="td" onclick="if(top.body) Len('td')" class="lenDesActiv">Date</td>

我尝试了以下操作:

driver.execute_script('document.querySelector("td#tdDos.lenguetaActiva").click();')
driver.execute_script('document.querySelector("td#").click();')
driver.execute_script('document.querySelector("#td").click();')
driver.execute_script('document.querySelector("td#td").click();')
driver.execute_script('document.getElementById("td").click();')
driver.findElement(By.id("td")).click();
document.getElementById("td").addEventListener("click",function(){
    alert("hello world");
});

loginelement = driver.find_element(By.ID,'td')
driver.execute_script("arguments[0].click();",loginelement)

解决方法

尝试一下。

首先切换到框架。

driver.switch_to.frame("body")

等待元素被点击。

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,'//td[@id="td"]')))

使用JavaScriptExecutor单击元素。

driver.execute_script('document.querySelector("td").click()')
,

您的问题是先将iframe切换到它。

driver.get("https://webpage.com")
driver.switch_to.frame(driver.find_element_by_xpath("/html/frameset/frameset/frame[2]"))
loginelement = driver.find_element(By.ID,'td')
driver.execute_script("arguments[0].click();",loginelement)
,

文本为{strong> Fecha 的SymPy位于a = 1 b = l + m c = l * m 中,因此您必须:

  • 诱导WebElement使所需的帧可用并切换到

  • 引出WebDriverWait以使所需的元素可点击

  • 您可以使用以下任一WebDriverWait

  • 使用<frame>

    CSS_SELECTOR
  • 使用driver.get('https://your_website.com/') WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='body']"))) WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"td#tdDos.lenguetaDesActiva"))).click()

    XPATH
  • 注意:您必须添加以下导入:

    driver.get('https://your_website.com/')
    WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//frame[@name='body']")))
    WebDriverWait(driver,"//td[@id='tdDos' and @class='lenguetaDesActiva']"))).click()
    
  • 浏览器快照:

Locator Strategies


参考

您可以在以下位置找到一些相关的讨论