小编Moh*_*wan的帖子

如何测试href值是否为selenium的相对值

我想测试我的标签中的href属性中的值是否是使用Selenium的相对路径.

这是我的HTML:

<a href="/about/somepage/">my page</a>
Run Code Online (Sandbox Code Playgroud)

我用selenium来选择一个标签:

string hrefValue = _chromeDriver.FindElement(By.TagName("a")).GetAttribute("href");
Run Code Online (Sandbox Code Playgroud)

这将返回" http:// mydomain/about/somepage / ",即使" http:// mydomain "部分不在HTML中.

如果我使用GetAttribute("pathname")它会给出我想要的东西,但是如果HTML看起来像这样,它GetAttribute("pathname")只会给出值"/about/somepage/"EVEN:

<a href="http://myDomain/about/somepage/">my page</a>
Run Code Online (Sandbox Code Playgroud)

那么,我如何测试href属性的实际值是否与我的网站相关?

c# selenium automated-tests selenium-chromedriver

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

python:如何随机按箭头键硒

我正在尝试通过随机选择箭头键来制作一个播放2048的程序。

我试过这样的事情:

 moves = [htmlElem.send_keys(Keys.UP),htmlElem.send_keys(Keys.RIGHT),htmlElem.send_keys(Keys.DOWN),htmlElem.send_keys(Keys.LEFT)]


while True:
    random.choice(moves)
Run Code Online (Sandbox Code Playgroud)

这是行不通的。我试过了print(random.choice(moves)),但它无限循环None

那么如何使用 Selenium 随机按下箭头键呢?

random selenium automated-tests while-loop python-3.x

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

如何获取移动应用程序(Android/iOS)中用于移动自动化测试的ui元素的ID,名称或x路径?

我想知道如何获得在appium,monkey-talk,xamarian等移动自动化测试中使用的移动应用程序中使用的UI元素的ID或名称.

testing selenium automation android uielement

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

Selenium ChromeDriver C#-如何发送快捷方式浏览器

如何使用Selenium发送Chrome快捷方式?我的意思是像Ctrl+ SCtrl+ TCtrl+ P这样的快捷方式与WebElements无关。我在那里读了很多类似的问题,但是没有建议的解决方案对我有用。

假设我想在浏览器中打开一个新标签(Ctrl+ T),我尝试了以下所有代码,但均未成功:

  1. “标准”方式:

    IWebElement body = myDriver.FindElement(By.TagName("body"));
    body.SendKeys(Keys.Control + "t");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 动作方式:

    Actions action = new Actions(myDriver);
    action.SendKeys(Keys.Control + "t").Build().Perform();
    
    Run Code Online (Sandbox Code Playgroud)
  3. ChromeDriver方法1:

    if(myDriver is ChromeDriver)
    {
        ChromeDriver chromeDriver = myDriver as ChromeDriver;
        chromeDriver.Keyboard.SendKeys(Keys.Control + "t");
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. ChromeDriver方法2:

    ChromeDriver chromeDriver = myDriver as ChromeDriver;
    chromeDriver.Keyboard.PressKey(Keys.Control);
    chromeDriver.Keyboard.PressKey("t");
    chromeDriver.Keyboard.ReleaseKey(Keys.Control);
    chromeDriver.Keyboard.ReleaseKey("t");
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我提到的第一种方法适用于Chrome以外的其他WebDriver。我用 :

  • 硒3.0.1
  • ChromeDriver 2.27.440174

我的驱动程序的初始化实际上是非常基本的:

ChromeOptions options = new ChromeOptions();
this.myDriver = new ChromeDriver(/* my path */, options); …
Run Code Online (Sandbox Code Playgroud)

.net c# selenium automated-tests selenium-chromedriver

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

Selenium 与 Python:陈旧的元素引用异常

从工作测试驱动开发与Python,和迁移后立即运行功能测试的时候我目前遇到“StaleElementReferenceException”。这是错误的全文:

ERROR: test_start_and_retrieve_list (__main__.NewVisitorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "functional_tests.py", line 53, in test_start_and_retrieve_list
    rows = table.find_elements_by_tag_name('tr')
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webelement.py", line 237, in find_elements_by_tag_name
    return self.find_elements(by=By.TAG_NAME, value=name)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webelement.py", line 527, in find_elements
    {"using": by, "value": value})['value']
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webelement.py", line 493, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: The element reference of <table id="id_list_table"> stale: either the element is no …
Run Code Online (Sandbox Code Playgroud)

python selenium automation

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

Python 和 Selenium - 离开页面时禁用警报

使用Python 3Chromedriver

假设一个自动化的 Python 程序正在网上冲浪,从不同的来源获取内容。

假设这些网站中的任何一个发出“您确定要离开此页面吗?” 警报。

关键词:这些网站中的任何一个(以随机方式)。

问题

我如何设置程序来处理这些警报,总是说:“是的,我想离开此页面”。

- - 更新 - -

可能的方法

根据下面的评论,我现在正在做的事情:

def super_get(url):
    driver.get(url)
    driver.execute_script("window.onbeforeunload = function() {};")
Run Code Online (Sandbox Code Playgroud)

现在使用super_get()标准的 insetaddriver.get()

您能想到任何更有效或更清洁的方法吗?

python selenium automation

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

杀死Selenium/Java中的chromedriver进程

我目前正通过Jenkins使用"Build Periodically"选项运行多个Java程序,并使用H 06**1-5(每天从周一到周五上午6点到7点之间运行).

有些程序我点击链接打开一个新窗口.因此,我使用以下代码

driver.findElement(By.xpath(".//*[@id='terms']/li[1]/a")).click();
System.out.println("Home Page is loaded Successfully and Terms of Use Link is clicked");
ArrayList<String> window1 = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(window1.get(1));
Thread.sleep(3000);
driver.close();
Thread.sleep(3000);
driver.switchTo().window(window1.get(0));
Run Code Online (Sandbox Code Playgroud)

现在程序运行后,我的其他程序因为已经运行的ChromeDriver.exe进程而失败.

我尝试使用driver.quit()而不是driver.close()在上面的代码中,但它将关闭我的整个浏览器.

注意:我driver.quit()在程序结束时使用它并没有帮助我摆脱在切换窗口时打开的正在运行的Chromedriver.exe实例.

请建议我一个处理这个问题的好方法.我一直在JAVA寻找这个解决方案.但大多数时候我都看到了C#的答案.

谢谢

java selenium automation jenkins selenium-chromedriver

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

Appium,网络驱动

我是 Appium 的新手。我尝试使用 Appium 在移动设备中执行我的 selenium 脚本。但我收到如下错误

org.openqa.selenium.WebDriverException:无法将返回值转换为 WebElement: {ELEMENT=0.5768692365381867-1}

我使用的代码如下:-

AppiumDriver d;
    @BeforeClass
    public void setUp() throws Exception
    {
        //Set Capabilities
        DesiredCapabilities caps=new DesiredCapabilities();
        caps.setCapability("deviceName", "Celkon A35K Remote");
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "4.4.2");
        caps.setCapability("browserName", "Browser");

        d = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), caps);
        d.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
        d.manage().timeouts().pageLoadTimeout(120,TimeUnit.SECONDS);
    }
@Test
public void testFBLogin() throws Exception
{
    //Load web page
    d.get("https://www.facebook.com/");
    //Enter user name
    d.findElementByName("email").sendKeys("Appium");
    //Enter password
    d.findElementByName("pass").sendKeys("Appium");
    //Click on Login
    d.findElementByName("login").click();
    Thread.sleep(10000);
}
@AfterClass
public void tearDown()
{
    //Close browser
    d.quit();
}`script:
Run Code Online (Sandbox Code Playgroud)

automation android webdriver appium

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

硒内部

硒如何工作?您能解释一下它的内部工作吗?

.net testing selenium automated-tests

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

如何获取Selenium Grid Hub日志

我在AWS实例上设置了selenium grid2,我想知道是否有办法在本地计算机上查看日志?

我知道我可以访问:http:// MyServerAddress/grid/console并查看所有节点,但我想要实际的日志.每次我想查看它时,都需要远程桌面到服务器有点痛苦.

我在想像http:// MyServerAddress/grid/log,但是唉,它似乎不是一个选择.

automated-tests selenium-grid selenium-webdriver selenium-grid2

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