标签: webdriver

Webdriver(c#) - 大概是通过文本找到按钮

我正忙着抓住一个按钮.是否有人能够指出我如何获得按钮处理的正确方向并使用xpath或css选择器单击它?这是代码:

 <button class="trans-button mtrn-dialog-button" title="" value="">OK</button>
Run Code Online (Sandbox Code Playgroud)

我试图通过文字来获取它.它似乎工作正常(因为它可以找到元素),但它似乎不想将click事件提供给按钮

selenium xpath webdriver css-selectors selenium-webdriver

1
推荐指数
1
解决办法
5042
查看次数

保存铬饼干Selenium

我正在寻找一种方法来保存chrome会话cookie,即使我的程序关闭后仍然存在.我假设写一个文件是一个很好的方法来做这个,但我不知道如何实现这一目标.我的最终目标是保存登录cookie,这样用户就不必每次都进行登录.这是一些代码:

Dim driver = New Chrome.ChromeDriver()
driver.Navigate.GoToUrl("URL")
'click stuff and login here
Dim _cookies = driver.Manage().Cookies.AllCookies
'write cookies to file or save somehow
Run Code Online (Sandbox Code Playgroud)

c# vb.net selenium webdriver selenium-webdriver

1
推荐指数
1
解决办法
5982
查看次数

java.lang.NoClassDefFoundError:org / w3c / dom / ElementTraversal

我正在尝试使用页面工厂和页面对象模型运行Java项目,我想在Chrome,IE和Firefox上运行它,但是我无法在Firefox上运行它,浏览器没有打开,我得到了这个错误: java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

我的代码是:

@BeforeMethod
public static void openBrowser() {
    String browser = "";
    if (browser.equalsIgnoreCase("chrome")){
        System.setProperty("webdriver.chrome.driver", "src\\test\\Resources\\BrowserDrivers\\chromedriver.exe");
        driver = new ChromeDriver();
    }
    else if (browser.equalsIgnoreCase("ie")){
        System.setProperty("webdriver.ie.driver", "src\\test\\Resources\\BrowserDrivers\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
    }
    else {
        driver = new FirefoxDriver();
    }
    driver = new FirefoxDriver();
    driver.get("http://www.google.com/");
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    driver.manage().window().maximize();
}

@AfterMethod
public  static void closeBrowser(){
    driver.quit();
}
Run Code Online (Sandbox Code Playgroud)

java selenium webdriver

1
推荐指数
1
解决办法
6073
查看次数

Facebook WebDriver:设置用户代理(PHP)

我正在尝试覆盖用户代理字符串,但到目前为止在互联网上找不到解决方案...

这是我的脚本:

<?php
namespace Facebook\WebDriver;

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;

require_once('vendor/autoload.php');

$host         = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$capabilities->setPlatform(WebDriverPlatform::WINDOWS);
$capabilities->setCapability('userAgent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$capabilities->setCapability('user-agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$driver       = RemoteWebDriver::create($host, $capabilities, 5000);

$driver->get('http://localhost/browser-emu/testpage.php?bot=1234');

// wait until the page is loaded
$driver->wait()->until(
    WebDriverExpectedCondition::titleContains('register')
);

echo "User agent: " . $driver->findElement(WebDriverBy::cssSelector('#userAgent'))->getText();

$driver->quit();
Run Code Online (Sandbox Code Playgroud)

该页面本身很简单:

<html>
<body>
<h1>testpage...</h1>

<?php
printf("<div id='userAgent'>%s</div> \n", $_SERVER['HTTP_USER_AGENT']);
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

不管我已经尝试过什么,总是说用户代理是Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 …

php selenium facebook webdriver selenium-chromedriver

1
推荐指数
1
解决办法
1801
查看次数

使用套接字发送原始POST请求

我正在尝试将原始POST请求发送到chromedriver服务器。

这是我尝试启动的内容new session

import socket

s = socket.socket(
    socket.AF_INET, socket.SOCK_STREAM)

s.connect(("127.0.0.1", 9515))

s.send(b'POST /session HTTP/1.1\r\nContent-Type:application/json\r\n{"capabilities": {}, "desiredCapabilities": {}}\r\n\r\n')
response = s.recv(4096)
print(response)
Run Code Online (Sandbox Code Playgroud)

输出:

b'HTTP/1.1 200 OK\r\nContent-Length:270\r\nContent-Type:application/json; charset=utf-8\r\nConnection:close\r\n\r\n{"sessionId":"b26166c2aac022566917db20260500bb","status":33,"value":{"message":"session not created exception: Missing or invalid capabilities\\n  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.4.0-91-generic x86_64)"}}'
Run Code Online (Sandbox Code Playgroud)

错误摘要:json我发送的对象未正确解析

当我使用同一json对象但通过requests库发送它时,一切正常:

import requests

params = {
        'capabilities': {},
        'desiredCapabilities': {}
    }


headers = {'Content-type': 'application/json'}

URL = "http://127.0.0.1:9515"

r = requests.post(URL + "/session", json=params)

print("Status: " + …
Run Code Online (Sandbox Code Playgroud)

python sockets http webdriver

1
推荐指数
1
解决办法
4368
查看次数

功能driver.switchTo.frame()在Selenium中不起作用

当我尝试使用Python中的Selenium中的Webdriver在网页上切换到框架时,它显示了错误。请在下面找到我的代码:

driver.switchTo().frame("frame");
Run Code Online (Sandbox Code Playgroud)

AttributeError:“ WebDriver”对象没有属性“ switchTo”

python selenium webdriver selenium-webdriver

1
推荐指数
2
解决办法
5179
查看次数

哪些驱动程序支持"无浏览器"/"无头"测试?

实际上我想在不想打开任何浏览器的服务器上运行我的selenium代码.但我很困惑哪个webdriver用于执行所有任务的服务器(我从某个站点下载一些文件并存储在我的服务器中).

selenium webdriver headless headless-browser selenium-webdriver

1
推荐指数
1
解决办法
1118
查看次数

Chrome无头元素不可见

尝试在iframe中交互一个Editbox时遇到以下错误

请注意,如果我没有在无头模式下运行它,则代码可以正常工作。仅当我以无头模式运行时才会出现问题。

错误:

org.openqa.selenium.ElementNotVisibleException:元素不可见

堆栈跟踪:

org.openqa.selenium.ElementNotVisibleException: element not visible
  (Session info: headless chrome=60.0.3112.113)
  (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.9.51-10.52.amzn1.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 21 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'ip-172-31-41-152', ip: '172.31.41.152', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.51-10.52.amzn1.x86_64', java.version: '1.8.0_45'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4), userDataDir=/tmp/.org.chromium.Chromium.aRCh3q}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=60.0.3112.113, platform=LINUX, …
Run Code Online (Sandbox Code Playgroud)

selenium webdriver selenium-chromedriver selenium-webdriver

1
推荐指数
1
解决办法
3584
查看次数

selenium.webdriver.firefox.options-它是关于什么的?

我在看这段代码:

#! python3
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.set_headless()
assert opts.headless # Operating in headless mode
browser = Firefox(options=opts)
browser.get('https://duckduckgo.com')
Run Code Online (Sandbox Code Playgroud)

来源:https : //realpython.com/modern-web-automation-with-python-and-selenium/

想法是调用无头浏览器,但我不理解此代码背后的逻辑。什么是“选项”,什么是“选项”?他们到底是做什么的?什么options=opts主张?

现在尝试运行此代码,而网页duckduckgo将无法打开。知道为什么吗?

python selenium webdriver options python-3.x

1
推荐指数
1
解决办法
4454
查看次数

选择器无效:使用Webdriver和Python的find_element_by_class_name不允许使用复合类名

我正在尝试通过webWhatsapp从聊天中打印我的消息之一。

我可以通过“控制台”选项卡中的Javascript完成此操作

recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content
Run Code Online (Sandbox Code Playgroud)

问题是我试图在python上做同样的事情,但对我不起作用。

这是我尝试过的:

from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason
Run Code Online (Sandbox Code Playgroud)

我遇到的错误是:消息:无效的选择器:不允许使用复合类名

我对javascript有点陌生,所以很抱歉造成误会,并感谢您的帮助!:)

xpath webdriver css-selectors python-3.x selenium-webdriver

1
推荐指数
1
解决办法
815
查看次数