我想测试我的标签中的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属性的实际值是否与我的网站相关?
我正在尝试通过随机选择箭头键来制作一个播放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 随机按下箭头键呢?
我想知道如何获得在appium,monkey-talk,xamarian等移动自动化测试中使用的移动应用程序中使用的UI元素的ID或名称.
如何使用Selenium发送Chrome快捷方式?我的意思是像Ctrl+ S,Ctrl+ T或Ctrl+ P这样的快捷方式与WebElements无关。我在那里读了很多类似的问题,但是没有建议的解决方案对我有用。
假设我想在浏览器中打开一个新标签(Ctrl+ T),我尝试了以下所有代码,但均未成功:
“标准”方式:
IWebElement body = myDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Control + "t");
Run Code Online (Sandbox Code Playgroud)动作方式:
Actions action = new Actions(myDriver);
action.SendKeys(Keys.Control + "t").Build().Perform();
Run Code Online (Sandbox Code Playgroud)ChromeDriver方法1:
if(myDriver is ChromeDriver)
{
ChromeDriver chromeDriver = myDriver as ChromeDriver;
chromeDriver.Keyboard.SendKeys(Keys.Control + "t");
}
Run Code Online (Sandbox Code Playgroud)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。我用 :
我的驱动程序的初始化实际上是非常基本的:
ChromeOptions options = new ChromeOptions();
this.myDriver = new ChromeDriver(/* my path */, options); …Run Code Online (Sandbox Code Playgroud) 从工作测试驱动开发与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 3和Chromedriver。
假设一个自动化的 Python 程序正在网上冲浪,从不同的来源获取内容。
假设这些网站中的任何一个发出“您确定要离开此页面吗?” 警报。
关键词:这些网站中的任何一个(以随机方式)。
问题:
我如何设置程序来处理这些警报,总是说:“是的,我想离开此页面”。
- - 更新 - -
可能的方法:
根据下面的评论,我现在正在做的事情:
def super_get(url):
driver.get(url)
driver.execute_script("window.onbeforeunload = function() {};")
Run Code Online (Sandbox Code Playgroud)
现在使用super_get()标准的 insetaddriver.get()
您能想到任何更有效或更清洁的方法吗?
我目前正通过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#的答案.
谢谢
我是 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) 我在AWS实例上设置了selenium grid2,我想知道是否有办法在本地计算机上查看日志?
我知道我可以访问:http:// MyServerAddress/grid/console并查看所有节点,但我想要实际的日志.每次我想查看它时,都需要远程桌面到服务器有点痛苦.
我在想像http:// MyServerAddress/grid/log,但是唉,它似乎不是一个选择.
automated-tests selenium-grid selenium-webdriver selenium-grid2
selenium ×8
automation ×5
.net ×2
android ×2
c# ×2
python ×2
testing ×2
appium ×1
java ×1
jenkins ×1
python-3.x ×1
random ×1
uielement ×1
webdriver ×1
while-loop ×1