我想使用javascript为网页上的所选元素设置属性.
我找到了两种使用javascript设置属性的方法
1
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementByID('//id of element').setAttribute('attr', '10')");
Run Code Online (Sandbox Code Playgroud)
2
WebElement element = driver.findElement(By.id("foo"));
String contents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;", element);
Run Code Online (Sandbox Code Playgroud)
但我想将javascript应用于我使用selenium webdriver找到的特定webelement
作为一个例子,我使用selenium webdriver选择一个链接
driver.findElement(By.linkText("Click ME"))
Run Code Online (Sandbox Code Playgroud)
现在我想使用javascript设置此webelement的属性
但我不知道如何将两者结合起来
请帮我找到解决方案
据我所知,用户可以通过使用 click 方法和另一种方式(例如使用带有 ASCII 值的 Sendkey 方法进行左键单击)来单击特定的 Webelement。
By Click Method: driver.findElement(By.cssSelector(".dbl")).click();
By Ascii Value : driver.findElement(By.cssSelector(".dbl")).sendKey("ASCII VALUE FOR Left Click");
Run Code Online (Sandbox Code Playgroud)
除此之外还有一种方法可以执行点击操作吗?
是什么arguments[0]以及arguments[1]使用时的意思是executeScript()方法从JavascriptExecutor通过硒webdriver的接口,什么是的目的arguments[0]在下面的代码。
javaScriptExecutor.executeScript("arguments[0].click()", webElement);
Run Code Online (Sandbox Code Playgroud) 我试图列出iframe页面中所有s 的名称,所以我可以通过Selenium访问它们.
问题是iframe每次更改的名称,所以我需要循环遍历所有这些.
我正进入(状态:
未捕获的DOMException:阻止具有原点" http:// localhost:8080 "的帧访问跨源帧.
我尝试使用以下方法循环时出错:
for (var f = 0; f < window.frames.length; f++) {
console.log(window.frames[f].name)
}
Run Code Online (Sandbox Code Playgroud)
有没有办法以iframe不同的方式获得名称?
browser.execute_script("window.open('about:blank', 'tab2');")
browser.switch_to.window("tab2")
browser.get('http://bing.com')
Run Code Online (Sandbox Code Playgroud)
我在网上搜索在 python 中使用 selenium 打开新选项卡的方法,并且ctrl + 的方法t不适用于 chrome,所以我偶然发现了上面的一段代码,但是我无法理解 'excute_script' 的作用。